Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Kompletten Fenstertitel von einem fremden Programm ermitteln

  Alt 11. Sep 2010, 02:30
Wenn du die Fensterklasse kennst, brauchst du natürlich nicht alle Fenster durch zu enumerieren, sondern kannst gleich bei MSDN-Library durchsuchenFindWindow 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.
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie (11. Sep 2010 um 03:28 Uhr)
  Mit Zitat antworten Zitat