![]() |
Enter-Taste im Java-fenster simulieren
Hallo,
ich positioniere einen Text, der sich in der Variablen s befindet, in ein Edit-Feld eines Java-Fensters, das funktioniert prima. Mein Versuch, die Eingabe automatisch per ENTER-Taste abzuschließen, ist nach mehreren Versuchen kläglich gescheitert. Dieser Code funktioniert nicht:
Delphi-Quellcode:
Hat Jemand weitere Ideen, wie ich die Aufgabe erledigen kann?
SendMessage(wndChild, WM_SETTEXT, 0, Integer(PChar(s)));
SendMessage(wndChild,WM_Char,VK_Return,0); //Enter Taste simulieren Danke für Eure Antworten. Grüße aus der Nordheide Bernd |
AW: Enter-Taste im Java-fenster simulieren
Das funktioniert so nicht, da Java ja keine Windowsobjekte (Fenster) verwendet. Das ist auch gar nicht gewünscht, dass man die UI Elemente von aussen bedient. Java implementiert ja eine Sandbox
|
AW: Enter-Taste im Java-fenster simulieren
Zitat:
danke für Deine schnelle Antwort. Der Text wird aber fehlerfrei positioniert. Hier ist der komplette Code.
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var wndMain, wndChild: HWND; i : Integer; s : string; begin wndMain := FindWindow('SunAwtFrame','Channel: /test'); if wndMain <> 0 then begin wndChild := FindWindowEx(wndMain, 0, 'SunAwtCanvas', nil); wndChild := FindWindowEx(wndChild, 0, 'Edit', nil); if wndChild <> 0 then begin ShowMessage('Window Handle: ' + IntToStr(wndChild)); s := 'ABC'; SendMessage(wndChild, WM_SETTEXT, 0, Integer(PChar(s))); SendMessage(wndChild,WM_Char,VK_Return,0); //Enter Taste simulieren end; end; end; Gruß Bernd |
AW: Enter-Taste im Java-fenster simulieren
Wenn überhaupt:
Delphi-Quellcode:
SendMessage(handle,WM_KEYDOWN,VK_RETURN,0);
SendMessage(handle,WM_KEYUP,VK_RETURN,0); |
AW: Enter-Taste im Java-fenster simulieren
@daywalker9
Danke für den Tipp; aber auch das funktioniert nicht; der Text steht im Editfeld und wird nicht gesendet. Gruß Bernd |
AW: Enter-Taste im Java-fenster simulieren
Ich hatte bis eben das gleiche Problem. Text lässt sich an ein externes Fenster senden, aber die Return-Taste wird nicht oder nicht jedesmal korrekt übertragen. Jetzt habe ich das Problem gelöst. Man muss vor dem Abschicken der RETURN-Taste sicherstellen, dass das Java-Fenster auch den Focus besitzt!
Mit SetForegroundWindow(hWndParent); Keybd_Event(vk_Return,0,0,0); Keybd_Event(vk_Return,0,KEYEVENTF_KEYUP,0); simuliere ich jetzt zuverlässig das Drücken und Loslassen der RETURN-Taste! hWndParent müsste bei dir das Handle des Java-Fensters sein. Ich hoffe das hilft weiter! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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