写注册表设置开机启动的代码

本文详细介绍了如何通过注册表实现软件的开机自动启动功能,包括创建注册表项、打开和写入数据的过程,以及取消开机启动的方法。教程中包含了关键步骤的代码示例和注意事项,适合对注册表操作感兴趣的开发者学习。
  1. void CSetDlg::OnBnClickedSetSet()  
  2. {  
  3.     // TODO: 在此添加控件通知处理程序代码  
  4.   
  5.     int RunOnStartFlag=0;  
  6.     RunOnStartFlag=m_RunOnStart.GetCheck();  
  7.     if (BST_CHECKED==RunOnStartFlag)  
  8.     {  
  9.         //设置开机启动  
  10.         //根键、子键名称、子键句柄  
  11.         HKEY hRoot=HKEY_LOCAL_MACHINE;  
  12.         char szSubKey[MAX_PATH]="Software//Microsoft//Windows//CurrentVersion//Run";  
  13.         HKEY hKey;  
  14.   
  15.         //打开指定的子键  
  16.         //如果不存在,则不创建  
  17.         DWORD dwDisposition=REG_OPENED_EXISTING_KEY;  
  18.         LONG iRet=::RegCreateKeyEx(hRoot,szSubKey,0,NULL,  
  19.             REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,  
  20.             NULL,&hKey,&dwDisposition);  
  21.   
  22.         //错误返回  
  23.         if (iRet!=ERROR_SUCCESS)  
  24.         {  
  25.             MessageBox("开机启动设置失败!");  
  26.         }  
  27.   
  28.         //得到当前文件的路径+文件名  
  29.         char szFileName[MAX_PATH];  
  30.         ::GetModuleFileName(NULL,szFileName,MAX_PATH);  
  31.   
  32.         //创建一个新的键值  
  33.         iRet=::RegSetValueEx(hKey,"CheckUpdate",0,REG_SZ,  
  34.             (byte*)szFileName,strlen(szFileName));  
  35.   
  36.         //关闭子键句柄  
  37.         ::RegCloseKey(hKey);  
  38.     }  
  39.     if (BST_UNCHECKED==RunOnStartFlag)  
  40.     {  
  41.         //取消开机启动  
  42.         HKEY hRoot=HKEY_LOCAL_MACHINE;  
  43.         char szSubKey[MAX_PATH]="Software//Microsoft//Windows//CurrentVersion//Run";  
  44.         HKEY hKey;  
  45.   
  46.         //打开指定的子键  
  47.         LONG iRet=::RegOpenKeyEx(hRoot,szSubKey,0,KEY_ALL_ACCESS,&hKey);  
  48.         if (iRet==ERROR_SUCCESS)  
  49.         {  
  50.             ::RegDeleteValue(hKey,"CheckUpdate");  
  51.             //关闭子键句柄  
  52.             ::RegCloseKey(hKey);  
  53.         }  
  54.         else  
  55.         {  
  56.             MessageBox("取消开机启动设置失败!");  
  57.         }  
  58.     }  
  59. }  

基本思路就是先创建一个注册表项,然后打开注册表,再进行写入,读取注册表也是类似的,先打开,然后读取,然后关闭键值。

而开机启动项目是放在注册表的"HKEY_LOCAL_MACHINE//Software//Microsoft//Windows//CurrentVersion//Run"这个项目下的,所以呢只要向这个地方写入自己的程序的名称以及路径,下次重新启动机器时,你会发现自己的程序开机启动了!

贴图: 

自己写的一段代码,虽然不怎么好吧,但是这是自己第一次写注册表,没什么经验,欢迎拍砖哈!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值