C++ Windos写开机启动项

来源:互联网 发布:xml与json传输性 编辑:程序博客网 时间:2024/05/17 09:20
//添加以下代码
HKEY hKey;   
//找到系统的启动项   
LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";   
//打开启动项Key   
long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);   //win7下
//long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpRun, 0,KEY_WRITE, &hKey);   //xp
if(lRet == ERROR_SUCCESS)   
{   
char pFileName[MAX_PATH] ={0};  //得到程序自身的全路径 
GetModuleFileName(NULL,pFileName,MAX_PATH);
lRet = RegSetValueEx(hKey, "KNTITMS", 0, REG_SZ, (BYTE *)pFileName, strlen(pFileName)+1); 


//添加一个子Key,并设置值 // 下面的"test"是写入注册表中的名称 
RegCloseKey(hKey); //关闭注册表   
if(lRet != ERROR_SUCCESS)
{   
AfxMessageBox("系统参数错误,不能完成开机启动设置");   
}   
else  
{  
AfxMessageBox("打开开机启动成功");   
}   
}   




删除开机启动项
//添加以下代码
HKEY hKey;   
//找到系统的启动项   
LPCTSTR lpRun = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";   
//打开启动项Key   
long lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, lpRun, 0, KEY_WRITE, &hKey);   
//long lRet = RegOpenKeyEx(HKEY_CURRENT_USER, lpRun, 0,KEY_WRITE, &hKey);   
if(lRet == ERROR_SUCCESS)   
{   
char pFileName[MAX_PATH] ={0};  //得到程序自身的全路径 
GetModuleFileName(NULL,pFileName,MAX_PATH);
lRet = RegSetValueEx(hKey, "KNTITMS", 0, REG_SZ, (BYTE *)pFileName, strlen(pFileName)+1); 


//添加一个子Key,并设置值 // 下面的"test"是写入注册表中的名称 
RegCloseKey(hKey); //关闭注册表   
if(lRet != ERROR_SUCCESS)
{   
AfxMessageBox("系统参数错误,不能完成开机启动设置");   
}   
else  
{  
AfxMessageBox("打开开机启动成功");   
}   
}   
0 0
原创粉丝点击