在服务程序中,不能写注册表?
#define HKCU HKEY_CURRENT_USER
LPCTSTR KEY_DisableTaskMgr =
"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";
LPCTSTR VAL_DisableTaskMgr = "DisableTaskMgr";
HKEY hk;
if (RegOpenKey(HKCU, KEY_DisableTaskMgr,&hk)!=ERROR_SUCCESS)//,0,KEY_WRITE
RegCreateKey(HKCU, KEY_DisableTaskMgr, &hk);
/*{
DWORD dwPos;
RegCreateKeyEx(HKCU, KEY_DisableTaskMgr,
0, NULL, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, NULL, &hk, &dwPos);
}*/
if (bDisable) { // disable TM: set policy = 1
DWORD val=1;
RegSetValueEx(hk, VAL_DisableTaskMgr, NULL,
REG_DWORD, (BYTE*)&val, sizeof(val));
//RegCloseKey(hk);
} else { // enable TM: remove policy
RegDeleteValue(hk,VAL_DisableTaskMgr);
}
同样一段代码,在普通程序中向注册表中定入值就成功,可放在服务程序中就不成功.(这个服务程序是为了禁止ctrl+atl+del的).