Цитата(Artik @ 11.1.2008, 13:31 ) | | Можно кодом плиз, чтобы вставить в мой вышенаписанный. Я не писал бы в этом разделе если бы хорошо разбирался в Делфи |
вот накатал примерчик.
| Код | unit Unit25;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
type TForm25 = class(TForm) Edit1: TEdit; Button1: TButton; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); end;
var Form25: TForm25;
implementation
{$R *.dfm}
//function GetThreadId(hThread: THandle): DWORD; stdcall; external 'Kernel32.dll';
procedure TForm25.Button1Click(Sender: TObject); begin Timer1.Enabled := true; end;
procedure TForm25.Timer1Timer(Sender: TObject); var hFrgdWnd, hFocusWnd: HWND; dwThreadID, dwCurThreadID, dwProcessID: DWORD; hThread: THandle; pText: PChar; begin hFrgdWnd := GetForegroundWindow; dwCurThreadID := GetCurrentThreadId; if (hFrgdWnd > 0) and (dwCurThreadID > 0) then begin dwThreadID := GetWindowThreadProcessId(hFrgdWnd, dwProcessID); if dwThreadID > 0 then begin if dwThreadID <> dwCurThreadID then AttachThreadInput(dwThreadID, dwCurThreadID, True);
hFocusWnd := GetFocus; if hFocusWnd > 0 then begin pText := GetMemory(MAX_PATH); try GetWindowText(hFocusWnd, pText, MAX_PATH); ShowMessage(pText); finally FreeMemory(pText); end; end; if dwThreadID <> dwCurThreadID then AttachThreadInput(dwThreadID, dwCurThreadID, False); end; end;
end;
end.
|
|