Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: URL von Chromefenster auslesen

  Alt 15. Sep 2014, 12:46
Und das heißt jetzt was?
FindWindow gibt im Fehlerfall (Result=0) erweitere Fehlerinfos aus, welche man ebenfalls auswerten/anzeigen könnte. (z.B. kein Fenster mit diesem Namen gefunden)
Delphi-Quellcode:
if ChromeHWND <> 0 then
  ...
else
  //MessageBox(Handle, PChar('Irgenein Fehlerzusatztext: ' + SysErrorMessage(GetLastError)), 'Fehler', mb_Ok or mb_IconExclamation);
  RaiseLastOSError;
Und wenn man statt SentMessage und WM_GETGEXTLENGTH/WM_GETTEXT die APIs GetWindowTextLength und SetWindowText verwendet, dann kann man davon auch die erweiterten Fehlercodes erfahren. (z.B. kein Text-Control)

Zitat:
Delphi-Quellcode:
  function GetText(WindowHandle: HWND): string;
  var
    TxtLength: integer;
    Buf: string;
  begin
    TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0) + 1;
    SetLength(Buf, TxtLength);
    SendMessage(WindowHandle, WM_GETTEXT, TxtLength, LongInt(@Buf[1]));
    Result := Buf;
  end;
Diese Funktion ist auch bissl Mist, denn hier ist die abschließende #0 mit im String.
Delphi-Quellcode:
  function GetText(WindowHandle: HWND): string;
  var
    TxtLength: Integer;
  begin
    TxtLength := SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0);
    SetLength(Result, TxtLength);
    if TxtLength > 0 then
      SendMessage(WindowHandle, WM_GETTEXT, TxtLength + 1, WPARAM(PChar(Result)));
  end;

  function GetText(WindowHandle: HWND): string;
  begin
    SetLength(Result, SendMessage(WindowHandle, WM_GETTEXTLENGTH, 0, 0));
    if Result <> 'then
      SendMessage(WindowHandle, WM_GETTEXT, Length(Result) + 1, WPARAM(PChar(Result)));
  end;
$2B or not $2B
  Mit Zitat antworten Zitat