Hallo Wissende,
da bei http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…
keine Antwort kam, mir das aber sehr am Herzen liegt, stelle ich eine neue Anfrage.
Mittels Excel-Vba kann ich ich in ein „Chatfenster“ Text reinschreiben. Leider versagt mein Code völlig wenn der Fokus nicht auf der Eingabezeile in dem Framebereich steht und da isser meistens nicht
Mit welchem C/C++ Code kann ich, egal wo der Fokus grade ist, direkt in einen Frame einer Chat-Seite Text reinschreiben?
Ich kenne den Fenstertitel, den Namen des Frames, auch die hwnd-Nummer.
Da ich keinen C/C++ Kompiler besitze, wäre mir auch eine .Exe lieb, der ich die genannten Sachen als Parameter mitgebe.
Vertrauen ist gut, eine exe ist so ne Sache, mir wäre es allerliebst, ich bekäme a) die exe, b) von jmd der hier oder in anderen Brettern „bekannt“ ist.
Ich würde mich sehr freuen wenn sich jmd 10 Minuten oder ne halbe Stunde hinsetzt und mir die .exe bastelt *hoff*
Dankeschön
Reinhard
Hallo,
also ob mit VB(A) oder C/C++ ist der Loesungsansatz deines Problems identisch.
Wenn du das Fensterhandle des Charfemsters hast, kanns du ueber die darin enthaltenen Controls iterieren, das geht alles mitAPI Funktionen. Damit erhaellst du das Handle des Edit-Controls fuer die Eingabe und diese verwendest du dafuer den Focus zu setzen. Mittels einem Tool wie Spy++ kann man den Typ, Namen, Ordinalzahl des Editcontrols herausfinden. Suche mal bei Microsoft auf der MSDN-Site dort gibt es Beispiels wie man das Handle eines Controls ,was ja nichts anderes ist als ein Fenster im Fenster, findet.
Hope this helps
Tschau
Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Wenn du das Fensterhandle des Charfemsters hast, kanns du
ueber die darin enthaltenen Controls iterieren, das geht alles
mitAPI Funktionen. Damit erhaellst du das Handle des
Edit-Controls fuer die Eingabe und diese verwendest du dafuer
den Focus zu setzen. Mittels einem Tool wie Spy++ kann man den
Typ, Namen, Ordinalzahl des Editcontrols herausfinden. Suche
mal bei Microsoft auf der MSDN-Site dort gibt es Beispiels wie
man das Handle eines Controls ,was ja nichts anderes ist als
ein Fenster im Fenster, findet.
Hope this helps
Hallo Peter,
du meinst hier z.B.:
http://msdn.microsoft.com/library/deu/default.asp?ur…
Es wird, wenn überhaupt, noch Jahre dauern bis ich genau verstehe was da beschrieben wird *g
Die Seite ist viel zu hoch für mich. Die gehen da sehr ins Detail und leider stiess ich da noch nicht durch einen Glückstreffer auf einen Beipielcode den ich in Vba benutzen kann.
Du hast da nicht zufällig einen Vba-Code der das macht was ich brauche.
a) aufgrund des Fensternamens die hwnd-Nummer eines Fensters ermitteln
b) bei jedem Einloggen in den Chat wird eine Sess-ID vergeben, aufgrund einer feststehenden URL und dieser Sess-ID ergibt sich dann eine komplette URL. Diese muss ermittelt werden.
c) In einen bestimmten Frame auf dieser ermittelelten Seite Text rein-„senden“, egal ob in der normal zur Eingabe gedachten Eingabezeile in diesem Frame der Fokus ist oder nicht.
Ich besaß mal API-Code der mir die hwnd-Nummer und die Sess-ID ermittelte, leider ist der auf einer kaputten Festplatte. Gut, das ist nicht so schlimm, ich fand die Codes im Internet und werde sie irgendwann auch wiederfinden.
Aber sie nützen mir nichts solane ich keine Lösung für das eigentliche Textsenden habe.
Ich würde mich sehr über Hilfe freuen.
Gruß
Reinhard
Hallo Reinhard,
also fuer dein Problem habe ich keine direkt fertige Loesung, schon gar nicht fuer EXCEL( puuuh, lehne ich komplett ab!!). Aber vieleicht gibt es aber einen ganz anderen Loesungsansatz.
Allso, dein Chat-Fenster laeuft ja wohl normalerweise in einem Browser. Dann geht doch hin und verwende das IE-OLE(MS Webbrowser) fuer VBA. Plaziere das OLE in deinem Formular und gib ihm eine Namen. Dann kannst du ueber dieses OLE auf die in dem Browserfenster dargestellten Elemente zugreifen.
Ich habe dir gerade eine kleine Access-DB (ich hoffe du hast AccessXP) gemait, mit einem Beispiel wie man an die Fensterhandel der Hauptfenster ihrer ChilsWindows kommt.
Das Eingabefeld beim w-w.w. comunity-chat wird dort folgendermassen aufgefuehrt:
1049390… (Microsoft VM For Java™ Host Window Class)
1377006… (MSAWT_Comp_Class)
Mit dem Fensterhandle kannst du vieleicht auch andere Eigenschaften des Controls herausfinden (z.B. ID, Name …) und dann mittels SendMessage den Text hinschicken.
Tschau
Peter
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Peter,
danke dir für deine Mühen.
Den Access_Code habe ich noch nicht betrachtet, ja, ich habe Access, aber noch nie genutzt.
Da mir das Rauslesen/reinschreiben in diesen einen Chat sehr wichtig ist, darf ich dich privat anmailen, wenn ich, wie zu erwarten , nicht klar komme?
Danke und Gruß
Reinhard