在服务程序中,不能写注册表?
原贴内容:
#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的).
回复人: MapleInHG() ( ) 信誉:102 2005-11-23 21:02:42 得分: 0
写到local machine下面去,服务启动时还不知道谁是current user
Top
回复人: jiangsheng(蒋晟.MSMVP2004Jan) ( ) 信誉:280 2005-11-24 1:55:03 得分: 0
权限不足
通常的方式是让服务和桌面交互,然后和一个桌面程序通讯。
回复人: sxslyy(孤松傲雪) ( ) 信誉:100 2005-11-24 11:19:00 得分: 0
MapleInHG() 您好:这段代码是为了禁止ctrl+atl+del,写到local machine是不会起作用的.
jiangsheng(蒋晟.MSMVP2004Jan) ( ):您好.我这个服务程序会起动一个对话框程序,在对话框程序中.我写的注册表.这样也不行吗?.我怎么才能取得这个权限.
Top
回复人: sxslyy(孤松傲雪) ( ) 信誉:100 2005-11-24 11:27:00 得分: 0
组策略编辑器
我是引于.VC知识库的http://www.vckbase.com/document/viewdoc/?id=424
通过对这个策略的设置可以屏蔽掉Ctrl+Alt+Del。如果要通过编写代码来实现,则必须操作下面的注册表项: HKCU\
Software\
Microsoft\
Windows\
CurrentVersion\
Policies\
System\DisableTaskMgr = dword:1
我如上写了代码,而且还是放在一个由服务启动的对话框程序中的,在对话框初始化时执行的.
如我的权限不足,要用什么方法才能有足够的权限.
谢谢大家!!!!!!!!!!!!!!
另一贴,求解!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!