有關於RegNotifyChangeKeyValue? |
答題得分者是:ccchen
|
tina
一般會員 發表:4 回覆:0 積分:0 註冊:2002-08-03 發送簡訊給我 |
我在書上看到...RegNotifyChangeKeyValue可以監控註冊表的改變...
請問可以監控子機碼嗎?(書上是說可以...)
我是這樣寫的:
char lpPath[MAX_PATH]="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"
HKEY hkResult = NULL, hKey=HKEY_LOCAL_MACHINE;
LONG nResult = ERROR_SUCCESS;
memset(lpPath, 0x0 ,MAX_PATH); nResult = RegOpenKeyEx(hKey, lpPath, 0L, KEY_READ, &hkResult); if (ERROR_SUCCESS != nResult)
{
ShowMessage("(Moi)Error while opening... n");
return false; } Label3->Caption="Watching...";
nResult = RegNotifyChangeKeyValue(hkResult,
true,
REG_NOTIFY_CHANGE_NAME
REG_NOTIFY_CHANGE_ATTRIBUTES
REG_NOTIFY_CHANGE_LAST_SET
REG_NOTIFY_CHANGE_SECURITY,
NULL,
false
);
可是只要註冊表開啟..就會被觸發...
如果,我要監控的是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows的話...請問該怎麼作...
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
不懂你的問題是什麼
char lpPath[MAX_PATH]="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"
hKey=HKEY_LOCAL_MACHINE;
這就是監控HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\\Run
如果,我要監控的是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows的話...請問該怎麼作...
改成
char lpPath[MAX_PATH]="SOFTWARE\\Microsoft\\Windows"
不就好了嗎? 用Delphi重寫一下
var subkey,sResult:string; hkResult:HKEY; begin subkey:='SOFTWARE\Microsoft\Windows'; if RegOpenKeyEx(HKEY_LOCAL_MACHINE,pchar(subkey), 0, KEY_READ, hkResult) <> 0 then ShowMessage('(Moi)Error while opening... n') else begin RegNotifyChangeKeyValue(hkResult,true,REG_NOTIFY_CHANGE_NAME REG_NOTIFY_CHANGE_ATTRIBUTES REG_NOTIFY_CHANGE_LAST_SET REG_NOTIFY_CHANGE_SECURITY, 0,false); end;如此, 此程式一執行就會 停在那, 直到regedit中 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows內之值有改變 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |