Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

Re: fremdes RichEdit auslesen?

  Alt 9. Sep 2006, 20:29
Du könntest dir die Länge vom letzten Abruf merken (WM_GETTEXTLENGTH) und nur dann den Text erneut abfragen, wenn sich die Länge geändert hat. Bringt vielleicht nicht viel, aber immerhin etwas.

Außerdem könntest du dir so jeweils nur die Änderungen geben lassen. Die folgende Funktion aktualisiert den Parameter oldlen jeweils so, dass beim nächsten Aufruf (mit derselben Variablen) nur der neu hinzugekommene Text zurückgegeben wird:
Delphi-Quellcode:
function GetNewForeignWindowText(wnd: HWND; var oldlen: Integer): string;
var
  len: Integer;
  buf: string;
begin
  len := SendMessage(wnd, WM_GETTEXTLENGTH, 0, 0);
  if len > oldlen then
  begin
    SetLength(buf, len);
    SendMessage(wnd, WM_GETTEXT, len + 1, Integer(@buf[1]));
    SetString(Result, @buf[oldlen + 1], len - oldlen);
    oldlen := len;
  end
  else
    Result := '';
end;
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat