vc 开发(3) 程序开机启动

本文介绍了两种实现程序自启动的方法:一是通过修改WIN.INI文件并使用WritePrivateProfileString函数;二是通过注册表HKEY_LOCAL_MACHINE下的RUN键值。此外还提到了其他实现自启动的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:      
  利用WIN.INI文件实现相关程序的自动启动。      
  通过WritePrivateProfileString函数来实现。      
  代码如下:      
  void     CAutoRunDlg::OnApply()         //假设本问题的对应工程为AutoRun      
  {      
  //更新数据      
                UpdateData(TRUE);      
  //写入ini文件      
  LPCTSTR     filename;      
  filename=m_strFileName;             //保存了需要被自动执行程序的完整路径      
  WritePrivateProfileString(_T("windows"),_T("load"),filename,_T("c:windows//win.ini"));      
  }      
     
  方法二:      
  写入到HOTKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/WINDOWS/CURRENTVERSION/RUN      
  下面是一个函数:      
  void     COAMinderDlg::AutoReg()      
  {      
                        CRegKey     m_Key;      
                        if(m_Key.Open(HKEY_LOCAL_MACHINE,"SOFTWARE//Microsoft//Windows//CurrentVersion//Run")!=ERROR_SUCCESS)      
                        {      
                                                if(m_Key.Create(HKEY_LOCAL_MACHINE,"SOFTWARE//Microsoft//Windows//CurrentVersion//Run")==ERROR_SUCCESS)      
                                                {      
                                                                        //AfxMessageBox(".",MB_ICONINFORMATION);      
                                                }      
                        }      
                        char     strFullPath[255];      
                GetModuleFileName(AfxGetInstanceHandle(),strFullPath,255);      
     
                        m_Key.SetValue(strFullPath,"DigitalTitan");      
                        m_Key.Close();      
  }      
     
  下面的文章有具体的介绍      
  http://www.vccode.com/file_show.php?id=180      
     
  还有方法就是添加程序到开始菜单的启动文件夹     或者写为系统服务的形式  
HKEY     hKEY;  
  long     ret;  
  LPCTSTR   Rgspath="Software//Microsoft//Windows//CurrentVersion//Run"   ;  
  ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,Rgspath,0,KEY_WRITE,   &hKEY);  
  if(ret!=ERROR_SUCCESS)  
  {    
  RegCloseKey(hKEY);  
  return   FALSE;  
  }  
   
  //Set   Key  
  ret=RegSetValueEx(hKEY,"System_Funny",NULL,type,(const   unsigned   char*)FileNewName,size);  
  if(ret!=ERROR_SUCCESS)  
  {    
  RegCloseKey(hKEY);  
  return   FALSE;  
  }  
  RegCloseKey(hKEY);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值