实现软件的自动启动和取消自动启动

来源:互联网 发布:python 每天定时执行 编辑:程序博客网 时间:2024/06/09 19:59
 

自动启动代码:

void CServerApp::SetAutoRun()

{

       HKEY hKey;  

       char* szRegpath = "Software//Microsoft//Windows//CurrentVersion//Run";

       long lRet;

       // 打开注册表

       lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szRegpath, 0,

              KEY_ALL_ACCESS, &hKey);

       if (lRet != ERROR_SUCCESS)

       {

              AfxMessageBox("打开自动启动注册表失败!");

              RegCloseKey(hKey);  

              return;  

       }  

   

       // 得到当前文件的路径

       char szFilePath[MAX_PATH];

       DWORD dwRet;

       dwRet = GetModuleFileName(NULL, szFilePath, MAX_PATH);

       if (dwRet == 0)

       {

              AfxMessageBox("得到当前文件路径失败!");

              return;

       }

 

       // 将当前路径增加到该注册表中

       lRet = RegSetValueEx(hKey, "AttendServer", 0, REG_SZ,

              (CONST BYTE*)&szFilePath, strlen(szFilePath) + 1);  

       if (lRet != ERROR_SUCCESS)  

       {

              AfxMessageBox("写入自动启动注册表失败!");

              RegCloseKey(hKey);  

              return;

       }  

       RegCloseKey(hKey);

}

 

取消自动运行代码:

void CServerApp::CancelAutoRun()

{

       HKEY hKey;  

       char* szRegpath = "Software//Microsoft//Windows//CurrentVersion//Run";

       long lRet;

       // 打开注册表

       lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, szRegpath, 0,

              KEY_ALL_ACCESS, &hKey);

       if (lRet != ERROR_SUCCESS)

       {

              AfxMessageBox("打开自动启动注册表失败!");

              RegCloseKey(hKey);  

              return;

       }

 

       lRet = RegDeleteValue(hKey, "AttendServer");

       if (lRet != ERROR_SUCCESS)

       {

              AfxMessageBox("删除该软件在自动启动注册表设置失败!");

              RegCloseKey(hKey);

              return;

       }

       RegCloseKey(hKey);  

}

原创粉丝点击