Delphi-PRAXiS
Seite 2 von 7     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Senden Von Strings an andere Programme (https://www.delphipraxis.net/107365-senden-von-strings-andere-programme.html)

Maddin1 29. Jan 2008 16:33

Re: Senden Von Strings an andere Programme
 
nunja, habe das Fenster markiert und es gibt 4 Einträge, mit jeweils handle, classname und titel.
Ich habe einen Eintrag genommen, dessen Koordinaten mit denen des Eingabefeldes entspricht.
Wobei dieser Eintrag auch nen untergordneten Eintrag enthält: einmal mit classname und einmal als Internetexplorer. Ich habe es mit beiden Varianten versucht, doch jedes mal hat er nur den Titel geändert, wovon man das aber auch nur bei Winspy sehen kann.


-->man is das alles kompliziert^^

Also das Eingabefeld kann man auch nicht extra markieren, sondern nur das gesamte Chatfenster, und man könnte dann den gewünschten Eintrag wählen, wie oben bereits erwähnt.

Andy090778 29. Jan 2008 23:38

Re: Senden Von Strings an andere Programme
 
Delphi-Quellcode:
procedure SendText;
var
  Text: String;
  EditHandle, WindowHandle: HWND;
begin
  Text := 'Hallo';
  WindowHandle := FindWindow(nil, 'XXX - Nachrichtensitzung');
  EditHandle := FindWindowEx(WindowHandle, 0, 'RichEdit20A', nil);
  SendMessage(EditHandle, WM_SETTEXT, 0, Integer(PChar(Text)));
end;
jetzt noch mixen mit GetText und natürlich mit Deinem Text.

Andreas

Maddin1 30. Jan 2008 16:44

Re: Senden Von Strings an andere Programme
 
hey danke Andreas, aber leider funzt das auch nicht,

Delphi-Quellcode:
 WindowHandle := FindWindow(nil, 'XXX - Nachrichtensitzung');
Diese Abfrage habe ich ja im Prinzip schon als Schleife, nur dass ich nach den Klassennamen abfrage und nicht nach den Titel(da der ja Variabel ist).
Mein Problem scheint ja eigentlich nur darin zu liegen, dass ich nicht weiß, wie ich auf die Komponente zugreifen kann.

Habe das ganze gestern mal dem einfachen Standart Editor von Windows probiert und es hat super gefunzt.
Da heißt das RichEdit bei WinSpy auch einfach: Edit.
Bei Icq gibt es leider keine derartige bezeichnung, und ich weiß nicht welches Handle ich nun benötige um Gettext/Settext zu verwenden.

Andy090778 30. Jan 2008 20:21

Re: Senden Von Strings an andere Programme
 
hmm? Mit meiner icq version funktioniert das Prima. XXX ersetzt Du mit dem Namen des Chatters.

Mit WinSpy konnte ich in 30 Sekunden die Klasse des Texteingabefelds ermitteln: RichEdit20A
Im Prinzip musst Du so nur noch das übergeordnete Fenster finden.

Wo genau ist das Problem??

Maddin1 31. Jan 2008 16:24

Re: Senden Von Strings an andere Programme
 
RichEdit20A steht irgendwie nirgends bei WinSpy.
Ich habe halt, wie gesagt ein Fenster gefunden was von den Koordinaten mit dem Eingabe Feld übereinstimmt,
aber wenn ich dessen Handle nehme passiert halt nichts...

Maddin1 31. Jan 2008 16:31

Re: Senden Von Strings an andere Programme
 
welche Icq Version hast du denn? ich hab 6

Maddin1 31. Jan 2008 16:46

Re: Senden Von Strings an andere Programme
 
also hab das jetzt mal folgender maßen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var EditHandle, WindowHandle: HWND;

begin

  windowhandle:= FindWindow('__oxFrame.class__',nil);
  windowhandle:= FindWindowEx(windowhandle, 0, '__oxFrame.class__', nil);
  windowhandle := FindWindowEx(windowhandle, 0, 'Internet Explorer_Server', nil);
  EditHandle := FindWindowEx(WindowHandle, 0, 'RichEdit20A', nil);
  SendMessage(edithandle, WM_SETTEXT, 0, Integer(PChar(memo2.Text)));
  memo1.Text:=inttostr(windowhandle)

end;
Der Scheint aber RichEdit20A nicht zu kennen, weil als ich mir dann windowhandle mal ausgegeben lassen habe kam ein wert raus, doch ab EditHandle, sprich also bei RichEdit20A kam 0 raus

peschai 31. Jan 2008 16:46

Re: Senden Von Strings an andere Programme
 
Hallo
So etwas sollte man nicht im "FormCreate" tun, denn hier wir das formular mit seinen Kindern noch aufgebaut ... (Beisopiel weiter oben ...)

bitsetter 31. Jan 2008 17:38

Re: Senden Von Strings an andere Programme
 
Zitat:

Zitat von Maddin1
Also das Eingabefeld kann man auch nicht extra markieren, sondern nur das gesamte Chatfenster, und man könnte dann den gewünschten Eintrag wählen, wie oben bereits erwähnt.

Zitat:

Zitat von Maddin1
also hab das jetzt mal folgender maßen:
Delphi-Quellcode:
...
  windowhandle := FindWindowEx(windowhandle, 0, 'Internet Explorer_Server', nil);
...

Kann auch sein, dass da der Internet Explorer in so eine Art TOleContainer läuft, mit WM_SETTEXT kommt man dann nicht weit.

Maddin1 1. Feb 2008 18:18

Re: Senden Von Strings an andere Programme
 
hmmm und wie kann man da nun rangehen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 Uhr.
Seite 2 von 7     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz