오길호2023-09-11T11:30:27+09:00
사용방법
procedure RegistryMonitor(RootKey: HKEY; Key: string; Proc: TProc; WatchSub: boolean);
begin
TThread.CreateAnonymousThread(procedure
var
Reg: TRegistry;
Event: cardinal;
begin
Reg := TRegistry.Create;
Reg.RootKey := RootKey;
if Reg.OpenKeyReadOnly(Key) then
begin
Event := CreateEvent(nil, False, False, nil);
if Event > 0 then
begin
while True do
begin
RegNotifyChangeKeyValue(Reg.CurrentKey, WatchSub, REG_NOTIFY_CHANGE_LAST_SET, Event, True);
if WaitForSingleObject(Event, INFINITE) = WAIT_OBJECT_0 then TThread.Synchronize(TThread.CurrentThread, procedure begin Proc end);
end;
end;
end;
Reg.Free;
end).Start;
end;
// Proc : 명령어 입력
// WatchSub : 하위도 모니터링...