Registriert seit: 17. Jan 2007
1.169 Beiträge
Turbo Delphi für Win32
|
Re: Offene Fenster auslesen + aufs Closen eines best. reagie
19. Aug 2007, 11:07
Zitat von xX0815Xx:
Delphi-Quellcode:
function EnumWin1(hWnd: THandle; FindWin: PString): Boolean; stdcall;
var
WinText: AnsiString;
Task : TStringList;
begin
Result := True;
Task := TStringlist.Create;
Hi,
deine TStringList wird immer wieder neu erzeugt, besser wäre wenn du sie als Parameter mit übergibst und sie danach auswertest, so in etwa:
Delphi-Quellcode:
function EnumWin1(hWnd: THandle; Task: TStringList): Boolean; stdcall;
var
WinText: AnsiString;
begin
Result := True;
if IsWindowVisible(hWnd) and not boolean(GetWindowLong(hWnd, GWL_HWNDPARENT)) then
begin
SetLength(WinText, SendMessage(hWnd, WM_GETTEXTLENGTH, 0, 0));
SendMessage(hWnd, WM_GETTEXT, Length(WinText)+ 1, integer(WinText));
if (length(WinText)> 0) and (WinText <> 'Program Manager') then
Task.Add(wintext);
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
Task : TStringList;
begin
Task := TStringlist.Create;
try
EnumWindows(@EnumWin1, lParam(Task));
// aktiv ist ne globale variable, wurde vorher schon ermittelt...
if Task.IndexOf(aktiv) = -1 then
ShowMessage('Net da')
finally
Task.Free;
end;
end;
Gruß bitsetter
"Viele Wege führen nach Rom" Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
|
|
Zitat
|