Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
Delphi 7 Architect
|
Re: Wo ist hier der (Denk-)Fehler? Aufruf von EnumWindowsPro
5. Feb 2004, 18:13
Delphi-Quellcode:
type
TWaechter = class(TObject)
private
...
class function EnumWindowsProc(hWindow : DWORD; fWaechter : TWaechter) : Longbool; stdcall;
// const macht nur sinn bei Datentypen größer 4 Byte
...
end;
var
liste : array of String;
implementation
class function TWaechter.EnumWindowsProc(hWindow : DWORD; fWaechter : TWaechter) : Longbool; stdcall;
var sCaption : String;
dwSize : DWORD;
begin
Result := true; // TRUE = weitermachen
if not IsWindowVisible(hWindow) then exit;
dwSize := SendMessage(hWindow, WM_GETTEXTLENGTH, 0, 0);
if dwSize > 0 then
begin
SetLength(sCaption, dwSize);
// Lass das plus 1 weg
SendMessage(hWindow, WM_GETTEXT, dwSize, Integer(PChar(sCaption)));
end
else
sCaption := '';
fWaechter.kontrolle(sCaption);
end;
procedure TWaechter.TZeitgeberOntimer(Sender : TObject);
begin
EnumWindows(@EnumWindowsProc, Integer(Self));
end;
procedure TWaechter.kontrolle(const sText : String);
// hier ist const angebracht
var i :integer;
bo : boolean;
begin
//Weitere Verarbeitungen mit dem Namen des Fensters
end;
constructor TWaechter.create;
begin
TZeitgeber := TTimer.create(nil);
with TZeitgeber do
begin
interval := 500;
onTimer := TZeitgeberOnTimer;
enabled := false;
end;
SetLength(liste, 0);
end;
destructor TWaechter.destroy;
begin
SetLength(liste, 0);
end;
procedure TWaechter.enabled(res: boolean);
begin
TZeitgeber.enabled := res;
end;
end.
Ich hoffe ich habe nicht zu viel geändert.
Vorsicht: ungetest
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
|
|
Zitat
|