AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Enter-Taste im Java-fenster simulieren

Ein Thema von Pegasus0211 · begonnen am 14. Jun 2010 · letzter Beitrag vom 4. Sep 2010
Antwort Antwort
Pegasus0211

Registriert seit: 6. Sep 2006
Ort: Scheeßel
28 Beiträge
 
Delphi 2009 Professional
 
#1

Enter-Taste im Java-fenster simulieren

  Alt 14. Jun 2010, 17:52
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:
SendMessage(wndChild, WM_SETTEXT, 0, Integer(PChar(s)));
SendMessage(wndChild,WM_Char,VK_Return,0); //Enter Taste simulieren
Hat Jemand weitere Ideen, wie ich die Aufgabe erledigen kann?
Danke für Eure Antworten.


Grüße aus der Nordheide

Bernd
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Enter-Taste im Java-fenster simulieren

  Alt 14. Jun 2010, 18:54
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
Markus Kinzler
  Mit Zitat antworten Zitat
Pegasus0211

Registriert seit: 6. Sep 2006
Ort: Scheeßel
28 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Enter-Taste im Java-fenster simulieren

  Alt 14. Jun 2010, 19:03
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
Hallo,

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

Geändert von Pegasus0211 (14. Jun 2010 um 19:15 Uhr)
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#4

AW: Enter-Taste im Java-fenster simulieren

  Alt 14. Jun 2010, 19:34
Wenn überhaupt:

Delphi-Quellcode:
SendMessage(handle,WM_KEYDOWN,VK_RETURN,0);
SendMessage(handle,WM_KEYUP,VK_RETURN,0);
Lars
  Mit Zitat antworten Zitat
Pegasus0211

Registriert seit: 6. Sep 2006
Ort: Scheeßel
28 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Enter-Taste im Java-fenster simulieren

  Alt 14. Jun 2010, 20:54
@daywalker9

Danke für den Tipp; aber auch das funktioniert nicht; der Text steht im Editfeld und wird nicht gesendet.

Gruß Bernd
  Mit Zitat antworten Zitat
hph

Registriert seit: 6. Nov 2006
Ort: Waldfischbach-Burgalben
1 Beiträge
 
Delphi 5 Professional
 
#6

AW: Enter-Taste im Java-fenster simulieren

  Alt 4. Sep 2010, 09:25
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!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 Uhr.
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