我给程序加了 开机启动后功能后, 开机自启动后, 加载本地数据库 始终出错,自己打开不会出错!
开机启动代码(放在了程序的初始化中) 如下:
HKEY hKey;
//找到系统的启动项
LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
//LPCTSTR lpRun = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run ";
//打开启动项Key
long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);
if(lRet == ERROR_SUCCESS)
{
char pFileName[MAX_PATH] = {0};
//得到程序自身的全路径
DWORD dwRet = GetModuleFileName(NULL, pFileName, MAX_PATH);
//添加一个子Key,并设置值
lRet = RegSetValueEx(hKey, "Phclient", 0, REG_SZ, (BYTE *)pFileName, dwRet+1);
//关闭注册表
RegCloseKey(hKey);
if(lRet != ERROR_SUCCESS)
{
AfxMessageBox("系统参数错误,不能随系统启动");
}
}
一下为加载错误的代码:
try
{
HRESULT hr = m_pConn.CreateInstance(_T("ADODB.Connection"));//这里 是 新建 的 连接对象
if (SUCCEEDED (hr))
{
m_pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=are.jpg","","",adModeUnknown); //2步:打开这个 连接
m_pConn->CursorLocation = adUseClient;
// MessageBox("连接已打开");
}
// 打开本地Access库db1.mdb
//AfxMessageBox("ok");
}
catch(_com_error e)
{
CString str;
str.Format("Run-time error '%d(%x)' \r\r ErrorMessage %s",e.Error(),e.Description(),e.ErrorMessage());
//AfxMessageBox(str);
}
开机启动代码(放在了程序的初始化中) 如下:
HKEY hKey;
//找到系统的启动项
LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
//LPCTSTR lpRun = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run ";
//打开启动项Key
long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);
if(lRet == ERROR_SUCCESS)
{
char pFileName[MAX_PATH] = {0};
//得到程序自身的全路径
DWORD dwRet = GetModuleFileName(NULL, pFileName, MAX_PATH);
//添加一个子Key,并设置值
lRet = RegSetValueEx(hKey, "Phclient", 0, REG_SZ, (BYTE *)pFileName, dwRet+1);
//关闭注册表
RegCloseKey(hKey);
if(lRet != ERROR_SUCCESS)
{
AfxMessageBox("系统参数错误,不能随系统启动");
}
}
一下为加载错误的代码:
try
{
HRESULT hr = m_pConn.CreateInstance(_T("ADODB.Connection"));//这里 是 新建 的 连接对象
if (SUCCEEDED (hr))
{
m_pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=are.jpg","","",adModeUnknown); //2步:打开这个 连接
m_pConn->CursorLocation = adUseClient;
// MessageBox("连接已打开");
}
// 打开本地Access库db1.mdb
//AfxMessageBox("ok");
}
catch(_com_error e)
{
CString str;
str.Format("Run-time error '%d(%x)' \r\r ErrorMessage %s",e.Error(),e.Description(),e.ErrorMessage());
//AfxMessageBox(str);
}
是不是与exe不在一个路径下?