
29.04.2009, 20:51
|
Активный
|
|
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
|
|
Код:
type
THandleAndText = record
_Handle: HWND; // дескриптор окна
_Text: string; // заголовок
end;
..............
var
Form1: TForm1;
HandlesAndTexts: array of THandleAndText; // массив, где всё сохраняется
function EnumWndProc(hndl: HWND; lprm: LPARAM): BOOL; stdcall;
..............
function EnumWndProc(hndl: HWND; lprm: LPARAM): BOOL; stdcall;
var
WndTxt: PChar;
PrevLen: Integer;
begin
GetMem(WndTxt, 255);
try
PrevLen := Length(HandlesAndTexts);
SetLength(HandlesAndTexts, PrevLen + 1);
GetWindowText(hndl, WndTxt, 255);
HandlesAndTexts[PrevLen]._Handle := hndl;
HandlesAndTexts[PrevLen]._Text := StrPas(WndTxt);
Result := True;
finally
FreeMem(WndTxt, 255);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWndProc, 0);
end;
|