写注册表让程序自动启动的问题!

ctyrzf ctyrzf 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如下方式设置程序在系统启动时自动运行:
bool CMyApp::SetAutoRun()
{
HKEY hKey;
LPCTSTR data_Set="Software\\Microsoft\\Windows\\CurentVersion\\Run";
LPCTSTR lpPath =path;
LPCTSTR keyname="MyExe";
if(!::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_WRITE,&hKey))
{
MessageBox(NULL,"无法打开注册表","课表查询",MB_OK|MB_ICONINFORMATION);
return 0;
}
if( ERROR_SUCCESS!=::RegSetValueEx(hKey,keyname,NULL,REG_SZ,(const BYTE*)&lpPath,
strlen(lpPath)+1))
{
MessageBox(NULL,"设置 ‘随系统启动’ 失败","MyExe",MB_OK|MB_ICONINFORMATION);
LPSTR lpMsgBuf;
FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER ,NULL,
GetLastError(),MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),(char*)&lpMsgBuf,0,NULL);
MessageBox(NULL,lpMsgBuf,"Get Last Error",MB_OK | MB_ICONEXCLAMATION);
LocalFree(lpMsgBuf);
return 0;
}

return 1;
::RegCloseKey(hKey);
}
其中的路径path是通过如下方式获取的:
::GetModuleFileName(NULL,path,256);//获取可执行文件路径
_splitpath(path,drive,dir,title,ext);//拆分文件路径

现在的问题是,程序不能正确写注册表。执行上面 代码就提示:"设置 ‘随系统启动’ 失败",然后弹出错误原因“无效的窗口句柄”,察看注册表,Software\\Microsoft\\Windows\\CurentVersion\\Run下也没有通过RegSetValueEx设置的启动项。
程序已经做到最后,被这个小问题烦了几个星期都解决不了,不知道错在哪里,所以请大家帮忙看一下,谢了。
...全文

相关推荐

C#操作注册表实现程序随系统开机自动启动

C#操作注册表实现程序随系统开机自动启动,需要.net 2.0支持,需要管理员权限才能操作注册表,支持xp系统; 在win7 win10下由于UAC权限问题仅支持不需要管理员权限的程序随系统自动启动。

ayouyouyuer

c++ 写注册表方式让程序开机自启动

主要介绍了c++ 写注册表方式让程序开机自启动,需要的朋友可以参考下

weixin_38682953

写注册表和启动菜单自动运行

向注册表中添加自动运行程序和启动菜单让程序开机自动运行

shucaishucai

win7开机自动启动程序的5种方法

win7开机自动启动程序的5种方法1:启动文件夹(有两个) C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup //------------------------------------------------------------------------------------------------ 【在注册表里的位置(可更改)】 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\User Shell Folders] \ "Common Startup\ "=\ "%Directory%\ " [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Shell Folders] \ "Common Startup\ "=\ "%Directory%\ " //------------------------------------------------------------------------------------------------ C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup //------------------------------------------------------------------------------------------------ 【在注册表里的位置(可更改)】 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] Startup=\ "%Directory%\ " [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders] Startup=\ "%Directory%\ "

jianghzz

程序自动运行,写注册表

自动运行其它的EXE文件,,并对注册表进行读写写注册表

wu425281294
评论 14
收藏 已收藏
分享
返回顶部
ctyrzf
VC/MFC 16,550 成员 421,606 内容