![]() |
Registryschlüssel überwachen
Luckie zeight mit dem Code
![]()
Delphi-Quellcode:
Hier ein Beispielaufruf:
type
TThreadParams = packed record Root: HKEY; Key: String[255]; end; PThreadParams = ^TThreadParams; function WatchRegKey(Root: HKEY; Key: String): DWORD; var err: DWORD; hEvent: THandle; hndlkey: HKEY; begin hEvent := CreateEvent(nil, False, False, nil); if hEvent <> 0 then begin err := RegConnectRegistry(nil, Root, hndlkey); if err = 0 then begin err := RegOpenKeyEx(hndlkey, PChar(Key), 0, KEY_NOTIFY, hndlkey); if err = 0 then begin err := RegNotifyChangeKeyValue(hndlkey, False, REG_NOTIFY_CHANGE_LAST_SET, hEvent, True); case WaitForSingleObject(hEvent, INFINITE) of WAIT_OBJECT_0: ShowMessage('Kuckuck'); end; end; end; end else err := GetLastError; result := err; end; function Thread(p: PThreadParams): Integer; var Root: HKEY; Key: String; begin Root := p.Root; Key := p.Key; WatchRegKey(Root, Key); Dispose(p); result := 0; end;
Delphi-Quellcode:
Sobald ein Schlüssel verändert/angelegt/gelöscht wird, wird dies gemeldet (hier mit "Kuckkuck ;) )
procedure TForm1.Button1Click(Sender: TObject);
var ThreadID: Cardinal; ThreadParams: PThreadParams; begin New(ThreadParams); ThreadParams.Root := HKEY_CURRENT_USER; ThreadParams.Key := 'Software\mp\Test'; CloseHandle(BeginThread(nil, 0, @Thread, ThreadParams, 0, ThreadID)); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz