![]() |
Re: Window Handle
Dazu ist doch WM_GETTEXT da.
|
Re: Window Handle
Funktioniert nicht er schreibt mir die Bezeichnung des Programmes selber (Caption) ins Memo aber nicht den Inhalt des Chatfensters Ich brauch ja dazu das richtige Handle in dem Falle gewuenschteNr := 3; //Memo (Chattext)
Beim Text senden habe ich es ja ins Handle gewuenschteNr := 5; //Editfeld vom Chatfenster geschrieben mit EnumChildWindows(iWindow, @EnumWindowsProc, LongWord(Edit1)); Jetzt aber muss der Text aus der Funktion GETTXT in dem Handle gewuenschteNr := 3; //Memo (Chattext) empfangen werden und ins Memo1 rein geht das vielleicht in der Variante die du wählst umzusetzen ? |
Re: Window Handle
ok, jetzt beim erneuten Lesen hab ichs begriffen. WM_GETTEXT liefert immer den Text. GetWindowText liefert nur den Text wenn es im eigenen Prozess ist das Handle, ansonsten wird die Caption zurück geliefert.
|
Re: Window Handle
vielleicht wäre ja in dem entsprechenden Fenster (gewuenschteNr := 3) alles markieren und kopieren eine Lösung zumindest wäre der Text dann ersteinmal im Zwischenspeicher würde das gehen ? ich weis ist keine saubere Lösung
|
Re: Window Handle
Wenn euch noch interessieren sollte wie ich das entsprechne handle rausbekomme dann schaut euch diese Funktion an
Delphi-Quellcode:
testen könnt ihr das auf function HandlePrint(Handle: THandle; dat: LongWord): Boolean; stdcall; begin // zeigt die Handles direkt im Chatfensters an SendMessage(Handle, WM_SETTEXT, 0, Integer(PChar('Gewuenschte Handle ist: ' + IntToStr(searchNr)))); Inc(searchNr); // weiter um alles Handles rauszufinden Result := true; end; //---------------------------------- procedure TForm1.ButtonClick(Sender: TObject); begin iWindow := FindWindow(nil, PChar('Raum plauderecke')); //Name des Chatfensters searchNr := 0; // zeigt die handles des Chatfensters an if iWindow <> 0 then EnumChildWindows(iWindow, @HandlePrint, 0); end; ![]() |
Re: Window Handle
WM_GETTEXT wird von dem Chat-Memo Fenster (SunAwtCanvas Klasse) nicht unterstuetzt.
|
Re: Window Handle
Also ich habe jetzt das entsprechende Chatfenster (Nicht spinchat) mit WinSpy analysiert folgende Fenster gibt es
Klasse: RichEdit20W Klasse: Edit Klasse: ListBox das RichEdit denk ich wird wohl das Chatfenster sein Edit das Eingabefeld und ListBox die Userliste also muss ich mit WM_GETTEXT über meine Funktion GETTXT wohl das Richedit auslesen vielleicht könnt ihr damit was anfangen und mir doch noch helfen :-D |
Re: Window Handle
Hat denn keiner weitere Lösungsvorsachläge ?
|
Re: Window Handle
Moin Delphiuser,
Du könntest das so machen: In der EnumChildWindows-Routine prüfst Du zu jedem Handle mit ![]() ![]() |
Re: Window Handle
Hallo Christian danke für die schnelle Hilfe. Leider weis ich nicht genau wie ich das mit GetClassName umsetzen soll. Eigentlich befinde ich mich ja in der Funktion GETTXT schon im richtigen Fenster
Delphi-Quellcode:
// globale Variablen
searchNr : Integer; gewuenschteNr : Integer; iWindow : THandle; function GETTXT(Handle: THandle; RichEdit: TRichEdit): Boolean; stdcall; begin if Assigned(RichEdit) and (searchNr = gewuenschteNr) then begin SendMessage(Handle, WM_GETTEXT, 0, integer(PChar(RichEdit.Text))); Result := false; end else begin Result := true; Inc(searchNr); end; end; ich muss denk ich mal nur mit
Delphi-Quellcode:
MFG: DelphiUser
EnumChildWindows(iWindow, @GETTXT,//hier weis ich nicht weiter den Inhalt in ein Memo oder Richedit schreiben
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz