您的位置:首页 > 其它

如何让程序随开机自动启动

2010-01-19 09:59 501 查看
if (/*需要开机启动*/)
{
//写入注册表,开机自启动
HKEY hKey;
//找到系统的启动项
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,并设置值 // 下面的"test"是应用程序名字(不加后缀.exe)
lRet = RegSetValueEx(hKey, "test", 0, REG_SZ, (BYTE *)pFileName, dwRet);

//关闭注册表
RegCloseKey(hKey);
if(lRet != ERROR_SUCCESS)
AfxMessageBox("系统参数错误,不能随系统启动");
}
}

//如果不想随开机启动,则需要查找注册表项看有没有,如果有的话则需要删除注册表项
else
{
//删除注册表中的开机自启动项
HKEY Hkey;
DWORD dwErrorCode;
char Key[40]={0};
LPCTSTR lpRun = "Software//Microsoft//Windows//CurrentVersion//Run";
strcpy(Key,"文件监控");

dwErrorCode= RegOpenKeyEx(HKEY_LOCAL_MACHINE,lpRun,0,KEY_ALL_ACCESS,&Hkey);
//查询是否有该键值
BYTE lpData[256];
DWORD dwType = REG_SZ;
DWORD dwNum = 256;
//查询注册表项值“test”项是否存在
long lRslt = RegQueryValueEx(Hkey, Key, 0, &dwType, lpData, &dwNum);

//如果查询成功
if (lRslt == ERROR_SUCCESS)
dwErrorCode= RegDeleteValue(Hkey,Key);
RegCloseKey(Hkey);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: