您的位置:首页 > 其它

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

2011-11-13 21:48 357 查看
自动启动代码:

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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: