关于MFC程序开机自启动问题

给主对话框添加一个新类 void SetAutoRun(bool bAutoRun)

类的声明为:

void CMy11Dlg::SetAutoRun(bool bAutoRun)

{

     HKEY hKey; 

    CString strRegPath = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";//找到系统的启动项

    if (bAutoRun) 

    {  

        if (RegOpenKeyEx(HKEY_CURRENT_USER, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) //打开启动项     

        { 

            TCHAR szModule[_MAX_PATH]; 

            GetModuleFileName(NULL, szModule, _MAX_PATH);//得到本程序自身的全路径

            RegSetValueEx(hKey,"11", 0, REG_SZ, (const BYTE*)(LPCSTR)szModule, strlen(szModule)); //添加一个子Key,并设置值,"11"是应用程序名字(不加后缀.exe)

            RegCloseKey(hKey); //关闭注册表

        } 

        else 

        {   

            AfxMessageBox("系统参数错误,不能随系统启动");    

        } 

    } 

    else 

    { 

        if (RegOpenKeyEx(HKEY_CURRENT_USER, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS)       

        { 

            RegDeleteValue (hKey,"11");     //“11”是应用程序的名字。

            RegCloseKey(hKey); 

        } 

    } 

 

 

}

 

 

然后,在主对话框的初始化函数OnInitDialog()中,添加SetAutoRun(true);即可

注:不一定非得在主对话框初始化函数中添加,也可以在程序运行一定能够运行到的地方添加,例如App类的初始化函数InitInstance()中添加。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值