VC 开机自动启动程序代码

  最好的还是快捷键+启动文件夹的方式,这样尽量不更改太多系统注册表。

   很多监控软件要求软件能够在系统重新启动后不用用户去点击图标启动项目,而是直接能够启动运行,方法是写注册表Software\\Microsoft\\Windows\\CurrentVersion\\Run

参考程序可以见下:(查找程序目录的执行文件,存在则进行添加注册表操作) 

//实用代码一

int C***Dlg::CreateRun(void)
{

    //添加以下代码
    HKEY   RegKey;  
    CString   sPath;  

    GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);  
    sPath.ReleaseBuffer();  
    int   nPos;  

    nPos=sPath.ReverseFind('\\');  
    sPath=sPath.Left(nPos);  

    CString   lpszFile=sPath+"\\getip.exe";//这里加上你要查找的执行文件名称  
    CFileFind   fFind;  

    BOOL   bSuccess;  
    bSuccess=fFind.FindFile(lpszFile);  

    fFind.Close();  
    if(bSuccess)  
    {  
        CString   fullName;  

        fullName=lpszFile;  
        RegKey=NULL;   

   RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",&RegKey);  

       RegSetValueEx(RegKey,"getip",0,

                     REG_SZ,

                    (const unsigned   char*)(LPCTSTR)fullName,

                    fullName.GetLength()

                    );//这里加上你需要在注册表中注册的内容   

       this->UpdateData(FALSE);  
   }  
   else  
   {   
        //theApp.SetMainSkin();  
       ::AfxMessageBox("没找到执行程序,自动运行失败");  

       exit(0);  
    }  
    return 0;
}

//把上面的getip(共2处)替换成自己想启动程序的名字。

================================================

实用代码二:

//写入注册表,开机自启动
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,并设置值 // 下面的"getip"是应用程序名字(不加后缀.exe)
    lRet = RegSetValueEx(hKey,
                        "getip", 0, REG_SZ, (BYTE *)pFileName, dwRet);

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值