大家帮忙看看这里是哪里出了问题,怎么显示开机启动设置成功了却不能启动呢?
void autorun_zzh::OnButtonZzhOk()
{ //实现开机自动启动
CString StrFilter = "可执行程序(*.exe)|*.exe|所有文件(*.*)|*.*|";
CFileDialog Dlg(TRUE, NULL, NULL, NULL, StrFilter, this);
HKEY hKey;
LPCTSTR StrKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
if (ERROR_SUCCESS == ::RegOpenKeyEx (HKEY_CURRENT_USER, StrKey, NULL, KEY_ALL_ACCESS, &hKey))
{
CString Value = Dlg.GetPathName();
LPCSTR KeyValue = Dlg.GetFileTitle();
if (ERROR_SUCCESS == ::RegSetValueEx(hKey, (LPCTSTR)KeyValue,
0, REG_SZ, (BYTE *)(LPCSTR)Value, strlen(Value) + 1))
{
MessageBox("开机启动设置成功!","提示",MB_OK);
}
::RegCloseKey(hKey);
}
else MessageBox("出现错误,请重新试一下!","提示",MB_OK);
}
大家看看怎么回事?
void autorun_zzh::OnButtonZzhOk()
{ //实现开机自动启动
CString StrFilter = "可执行程序(*.exe)|*.exe|所有文件(*.*)|*.*|";
CFileDialog Dlg(TRUE, NULL, NULL, NULL, StrFilter, this);
HKEY hKey;
LPCTSTR StrKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
if (ERROR_SUCCESS == ::RegOpenKeyEx (HKEY_CURRENT_USER, StrKey, NULL, KEY_ALL_ACCESS, &hKey))
{
CString Value = Dlg.GetPathName();
LPCSTR KeyValue = Dlg.GetFileTitle();
if (ERROR_SUCCESS == ::RegSetValueEx(hKey, (LPCTSTR)KeyValue,
0, REG_SZ, (BYTE *)(LPCSTR)Value, strlen(Value) + 1))
{
MessageBox("开机启动设置成功!","提示",MB_OK);
}
::RegCloseKey(hKey);
}
else MessageBox("出现错误,请重新试一下!","提示",MB_OK);
}
大家看看怎么回事?
0, REG_SZ, (BYTE *)(LPCTSTR)Value, strlen(Value) + 1))
//实现开机自动启动
CString StrFilter = "可执行程序(*.exe)|*.exe|所有文件(*.*)|*.*|";
CFileDialog Dlg(TRUE, NULL, NULL, NULL, StrFilter, this);
Dlg.DoModal();//这里显示对话框选择可执行程序
HKEY hKey;
LPCTSTR StrKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
if (ERROR_SUCCESS == ::RegOpenKeyEx (HKEY_CURRENT_USER, StrKey, NULL, KEY_ALL_ACCESS, &hKey))
{
CString Value = Dlg.GetPathName();
CString KeyValue = Dlg.GetFileTitle();//这里不要用LPCSTR,因为它只是个地址
if (ERROR_SUCCESS == ::RegSetValueEx(hKey, (LPCTSTR)KeyValue,
0, REG_SZ, (BYTE *)(LPCSTR)Value, strlen(Value) + 1))
{
MessageBox("开机启动设置成功!","提示",MB_OK);
}
::RegCloseKey(hKey);
}
else MessageBox("出现错误,请重新试一下!","提示",MB_OK);
如果设置没有问题那就看你是什么系统了
vista以上需要过UAC
HKEY hKey;
//找到系统的启动项
LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";
//打开启动项Key
long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey); 转自:http://www.cloay.com/forum.php?mod=viewthread&tid=33&page=