FindWindow und Edit
-
Nabend Leute,
ich habe ein paar Probleme mit FindWindow und einen Editfeld. Ich möchte aus meinen Programm einen Text an ein java Programm senden. Der Text soll im JavaProgramm im Editfeld erscheinen. Habe hier schon angefangen und komme aber nicht mehr weiter. Das Problem ist das der text nicht ans Edit feld gesendet wird sondern an die Titelleiste wo das minimieren usw ist.
Hier mal mein Code:HWND hWnd = ::FindWindow("J",NULL); if (hWnd) { SetForegroundWindow(hWnd); ShowWindow(hWnd,SW_NORMAL); String text = "Hallo"; FindWindowEx(hWnd,0,"Edit",NULL); SendMessage(hWnd,WM_SETTEXT,0,(LPARAM)(LPCTSTR)text.c_str()); PostMessage(hWnd,WM_KEYDOWN,VK_RETURN,0); }MFG Fregger
-
Wie wär's denn, wenn du den Rückgabewert von FindWindowEx benutzt? Sonst bringt der Aufruf nichts.

-
hi,
was meinst du denn genau, habe mit FindWindow noch nie gearbeitet.Mein vorhaben ist es ein kleinen Bot zu proggen für nen Java Chat der alle 60 eine Eingabe an den Chat senden soll. Nur bekomm ich nicht Das Richtige Handle von dem Chat und dem Editfeld heraus. Gibt es noch ne andere Möglichkeit den Text ins Editfeld zu bringen? Es geht um den Chat knuddels.de!
Hab hier nochmal meinen Code überarbeitet:
String Channel = " Channel: "+Edit6->Text; HWND hWnd = FindWindow(0, Channel.c_str()); if (hWnd) { SetForegroundWindow(hWnd); ShowWindow(hWnd,SW_NORMAL); HWND zw = FindWindowEx(hWnd,0,"edit",0); SendMessage(zw,WM_SETTEXT, 0, (LPARAM)"Der Text"); PostMessage(hWnd,WM_KEYDOWN,VK_RETURN,0); }MFG Fregger
-
Fregger schrieb:
was meinst du denn genau, habe mit FindWindow noch nie gearbeitet.
Aber mit Funktionen, die etwas zurückgeben, oder? Egal, im Code scheint's ja jetzt richtig zu sein.
Hast du geprüft, ob das Eingabefeld in dem Javaprogramm überhaupt ein echtes Windows-Fenster ist? Gerade bei Java ist das nicht sicher.
Klappt das mit der Eingabetaste? Falls ja, könntest du die einzelnen Tastenereignisse schicken. Oder, falls der Chat mit der Zwischenablage arbeiten kann, den Text da reinkopieren und ein Strg-V hinschicken.
-
Hi,
bin mir nicht sicher ob es ein Richtiges WindowsFenster ist, sieht aber so aus.
Das mit der Eingabetaste Klappt. Die Idee mit der zwischenablage hört sich gut an, muss es mal ausproier. Danke für deine Tipps
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Moin,
habs jetzt endlich so hinbekommen, aber es gibt noch ein Problem, dass Editfeld verliert manchmal sein Focus und somit kannd er text dann nicht abgesendet werden. hat jemand eine ahnung wie ich da wieder den Focus hinbekomme?
Hier nochmal komplett:
String Channel = " Channel: "+Edit6->Text; HWND hWnd = FindWindow(0, Channel.c_str()); if (hWnd) { SetForegroundWindow(hWnd); ShowWindow(hWnd,SW_NORMAL); keybd_event(VK_CONTROL, 0, 0, NULL); // Strg drücken keybd_event(0x56, 0, 0, NULL); // v drücken keybd_event(0x56, 0, KEYEVENTF_KEYUP, 0); // v loslassen keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); // strg loslassen Sleep(500); PostMessage(hWnd,WM_KEYDOWN,VK_RETURN,0); }MFG Fregger
-
SetFocus mit deinem Fensterhandle?
-
hi,
nein nicht in meinem Programm sondern im Chat. Kann ich da nicht den Focus ans Editfeld schicken? Also wie oben beschrieben verliert das Editfeld im chat nach einer gewissen Zeit sein Focus

MFG Fregger
-
Fregger schrieb:
nein nicht in meinem Programm sondern im Chat.
Mit "deinem" Fensterhandle meinte ich schon das Handle auf das Eingabefeld des Chats...
-
Das handle kenne ich ja nicht, wie bekomm ich den raus welche Componente sich bei knuddels befinden. Hab schon mit EnumChildWindows Probiert jedoch klappt das auch nicht!
-
Schau dir mal Abschnitt 5.6 der knuddels.de-AGB an.
-
Naja ich werds trotzdem weiter versuchen, ist ja nur um mich in so was einzuüben um in andere Fenster zuzugreifen aber naja danke für deine Hilfe!
MFG Fregger