Wenn du die Fensterklasse kennst, brauchst du natürlich nicht alle Fenster durch zu enumerieren, sondern kannst gleich bei
FindWindow die Fensterklasse angeben, um an das Hamdle für das Fenster zu kommen.
Delphi-Quellcode:
function GetWindowCaption(WindowClass:
String):
String;
var
Handle: THandle;
CaptionLength: Cardinal;
WindowCaption:
String;
begin
Handle := FindWindow(PChar(WindowClass),
nil);
if Handle <> 0
then
begin
CaptionLength := SendMessage(
Handle, WM_GETTEXTLENGTH, 0, 0);
SetLength(WindowCaption, CaptionLength);
SendMessage(
Handle, WM_GETTEXT, CaptionLength, Integer(@WindowCaption[1]));
SetString(result, PChar(WindowCaption), Length(WindowCaption));
end
else
raise Exception.Create(SysErrorMessage(GetLastError));
end;
Beispielaufruf:
Delphi-Quellcode:
var
WindowCaption:
String;
begin
try
WindowCaption := GetWindowCaption('
Notepad++');
Writeln(WindowCaption);
except
on E:
Exception do
WriteLn(E.
Message);
end;
ReadLn;
end.