Delphi-PRAXiS
Seite 1 von 7  1 23     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 26. Jan 2008 14:23


Senden Von Strings an andere Programme
 
Hallo, ich habe mal eine Weile gesucht aber nichts wirklich passendes gefunden.

Wie kann man den String eines RichEdits oder Memo an ein anderes Programm senden/empfangen?

Um das Ganze ein wenig genauer zu beschreiben:
ich habe ein kleines Programm geschrieben, mit dessen Hilfe man Texte in leichter Form kodieren kann(einfach mit Ascii Verschiebung).
Und nun würde ich diesen kodierten/dekodierten Text gerne direkt an Icq senden und abschicken lassen.
Und wenn eine Antwort bei Icq kommt, diese direkt wieder in mein Programm laden lassen.

Das würde das lästige Kopieren/Einfügen ersparen.

Bernhard Geyer 26. Jan 2008 14:51

Re: Senden Von Strings an andere Programme
 
Gewünschtes Fenster Suchen mit FindWindow und dann mit WM_GETTEXT und WM_SETTEXT (hoffentlich richtiger Name) Text auslesen und schreiben. Beispiele sollten sich per Forensuche viele finden lassen.

Maddin1 26. Jan 2008 15:20

Re: Senden Von Strings an andere Programme
 
so, habe jetzt mal ein bisschen rumgetüfftelt und nachgeschaut, aber ich komme damit irgendwie nicht zurecht.
Wie sehen diese Funktionen denn an konkreten Beispielen aus?
denn wenn ich versuche die bestimmten Parameter einzugeben, treffe ich immer nur auf neue Fehlermeldungen oder es passiert gar nichts.

Christian Seehase 26. Jan 2008 16:33

Re: Senden Von Strings an andere Programme
 
Moin Maddin,

da hier im Forum eingentlich reichlich funktionierende Beispiele zu finden sind, wäre es in diesem Falle wohl das einfachste, wenn Du mal zeigst, wie Du es versucht hast.

Maddin1 28. Jan 2008 16:17

Re: Senden Von Strings an andere Programme
 
naja wüsste ich jetzt selbst gern^^
--->nich gespeichert hat.

ich versuche es einfach noch einmal und wenn es nicht klappt gibts hier den quelltext.

Maddin1 28. Jan 2008 16:37

Re: Senden Von Strings an andere Programme
 
also, ich habe das jetzt wieder gefunden, hier im Forum:


Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var h: HWND;
   text,classname:String;
var i : integer;
begin

for i:=0 to 20 do begin
gettickcount;
begin
h:=FindWindow(nil,'Name des Chatteilnehmers');
//h:=GetForegroundWindow;
SetLength(text,SendMessage(h,WM_GETTEXTLENGTH,0,0)+1);
SendMessage(h,WM_GETTEXT,length(text),Integer(@text[1]));
SetLength(ClassName, 255);
      //get the class name and reset the
      //memory area to the size of the name
      SetLength(ClassName,
              GetClassName(h,
                           PChar(className),
                           Length(className)));

memo1.Text:=classname;
memo2.Text:=text;

end;
end;
    end;
So... das Ganze läuft in einer Schleife, damit es sich ständig aktualisiert.
Ich komme zwar nun an den Klassennamen heran (der bei Icq immer gleich ist), aber
ich weiß nicht, wie ich auf das Eingabefeld in diesem Chatfenster zugreifen kann.
Außerdem, ist der Titel des Fensters, der Name des anderen Users, was sich ja auch ständig ändert, also kann man das ja auch nicht oben einfach so ohne variable bei h:=findwindow festlegen.

bitsetter 28. Jan 2008 20:20

Re: Senden Von Strings an andere Programme
 
Zitat:

Zitat von Maddin1
Ich komme zwar nun an den Klassennamen heran (der bei Icq immer gleich ist), aber
ich weiß nicht, wie ich auf das Eingabefeld in diesem Chatfenster zugreifen kann.
Außerdem, ist der Titel des Fensters, der Name des anderen Users, was sich ja auch ständig ändert, also kann man das ja auch nicht oben einfach so ohne variable bei h:=findwindow festlegen.

Hallo,

wenn der Klassennamen von Icq eindeutig ist, kannst du ja das ganze mal umdrehen:
Delphi-Quellcode:
h:=  FindWindow('IcqClassName...',nil);
Zitat:

Zitat von Maddin1
Ich komme zwar nun an den Klassennamen heran (der bei Icq immer gleich ist), aber
ich weiß nicht, wie ich auf das Eingabefeld in diesem Chatfenster zugreifen kann.

Da kannst du es mal mit Tools wie Hier im Forum suchenWinSpy oder Componentfinder versuchen, die haben gleich einen Delphi- Codegenerator dabei.

Maddin1 29. Jan 2008 13:33

Re: Senden Von Strings an andere Programme
 
Mit WinSpy habe ich mir den Klassennamen ja anzeigen lassen.
Aber wo ich nicht ganz durchgesehen habe, da wurden noch andere Sachen mit aufgelistet.
Ich weiß nicht, ob es verschiedene Komponenten da, auf jeden fall, steht da ja auch nix von wegen Edit oder irgendwas, was auf ein eingabefeld hindeuten würde, deswegen bin ich mir auch nicht ganz sicher wegen dem generierten Code von WinSpy.

aber trotzdem schonmal dankeschön, ich werde nochmal ein wenig was ausprobieren.

Maddin1 29. Jan 2008 14:29

Re: Senden Von Strings an andere Programme
 
also bei findwindow habe ich jetzt mit dem Klassennamen abgefragt und probiert was zu schicken mit

Delphi-Quellcode:
  SendMessage(wnd, WM_SETTEXT, 0, Integer(Pchar(memo2.Text)));
aber winspy zeigt mir an, das der titel jetzt nur in mein memo text umgeändert wurde.
Sehen tut man das nicht, halt nur bei winspy.
Aber von den koordinaten her, ist es schon das richtige fenster.

gibb 29. Jan 2008 15:51

Re: Senden Von Strings an andere Programme
 
an welchen handle hast du das geschickt ? an den normalen ICQ handle oder an den textfeld handle vom icq ?

weil du müsstest es an den Handle vom "textfeld" das ganze schicken... kannst mit WinSpy das gewünschte "textfeld" (ich weis halt nicht was es ist beim ICQ) anwählen/markieren und dann oben auf Code klicken und es erstellt dir einen Möglichen Code ( meist nicht optimal aber auch nicht grundübel) womit du an den gewünschten handle kommst.

LG Severin


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:24 Uhr.
Seite 1 von 7  1 23     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