Tastendruck abfragen

Status
Nicht offen für weitere Antworten.

Donut

Bekanntes Mitglied
hiho

Ich will beim drücken der (z.b.) F2- taste ne Methode auslösen....
Und zwar auch, wenn das Fenster nicht aktiviert ist....
Wiem acht man das?
 

L-ectron-X

Gesperrter Benutzer
Die Informationen zu Deinem Problem sind recht dürftig. ???:L
Welches Fenster? Wie, nicht aktiviert? Willst Du KeyEvents abfangen?
Meinst Du dann eventuell so etwas? Ich rate ungern so ins Blaue. :?
Code:
public void keyPressed(KeyEvent ev) { 
  if (ev.getKeyCode() == KeyEvent.VK_F2) { 
    //tu was
  } 
}
Vermutlich kann aber ein deaktiviertes Fenster (Fenster ohne Focus) keine Events empfangen.
 

Donut

Bekanntes Mitglied
sorry für den informationsoverkill :D

folgendes:
ich schreibe gerade einen bot, der ganz bestimmte Mausklicks immer wieder ausführt.
die soll aber passieren, wenn nicht das Java-Programm im vordergrund ist, sondern, wie in meinem Fall, ein Spiel.

Wenn ich also das spiel maximiert habe, will ich mit einem Tastendruck den Bot starten und ihn auch wieder unterbrechen....

(Es ist kein Cheatprogramm, falls das jetzt jemand denkt ;) )
 

thE_29

Top Contributor
Die Frage ist ob er den Tastendruck überhaupt bekommt da es ja nicht das aktive Programm ist!

In C wars leicht, weil da immer alles an die MESSAGE_MAP geschickt worden ist, wie das in Java ist, weiß ich nicht!

Musst du glaub ich das hier ausprobieren


Code:
public class DeinNichtCheatProgramm 
    implements AWTEventListener
{
  public DeinNichtCheatProgramm()
  {
//BLABALA
    long eventMask = AWTEvent.KEY_EVENT_MASK;
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    toolkit.addAWTEventListener(this, eventMask);
//BLABLABLA
  }
//BLABLABLA CODE!

 /**************************************************************************
   * Listener für die Abfrage auf Tastendrücke
   * @param event Event
   *************************************************************************/
  public void eventDispatched(AWTEvent event)
  {
    //holt sich die Event ID
    int ID = event.getID();
    //wenn überhaupt eine Taste gedrückt wird
    if (ID == KeyEvent.KEY_PRESSED)
    {
      //wenn die Taste F5 ist
      if (event.paramString().indexOf("F5") != -1)
      {
        //Windows Funktion
        if (strOSystem.compareTo("WINDOWS") == 0)
        {
          WindowsStartServices();
        }
        //Linuxfunktionen
        else
        {
          LinuxStartServices();
        }
      }
    }
   }
}

Musst schaun, aber so reagiert das Programm mal auf alle Tastenereignisse, auch wenn der Focus im Programm auf irgedwas anderem liegt![/code]
 

Donut

Bekanntes Mitglied
jo danke schoma ...
aber der Tastendruck bewirkt nichts, wenn der focus nicht auf dem Programmfenster ist.... :cry:
 

thE_29

Top Contributor
Wie schon gesagt ;)


Du könntest einen C Code in dein Java einbauen (geht glaub ich mt JNI oder sowas) und mit dem C Code kannst du auf alles abfragen, so müsste es funktionieren!

Weil mit C kannst du sowieso alles abfragen was im OS läuft ;)
 

thE_29

Top Contributor
die Frage ist ob er das Programm wegen Plattformunabhängigkeit in java schreibt, oder weil er einfach nur so in java schreibt ;)

Weil ich kaum glaube das er das mit dem Spiel (auch wenns kein trainer oder cheater ist) in Linux auch spielt ;)

Aber das ganze Prog in C schreiben wäre natürlich leichter ;)
 

Donut

Bekanntes Mitglied
hmm nur kann ich leider kein C
Ich hab das programm in java geschrieben, weil das das einzige ist, was ich an Programmiersprachen kann....
 

Silkstring

Mitglied
Hallo erstmal,

ich wollte nur schreiben das der code von thE_29 genau das ist was ich für ein Programm von mir gesucht habe.
da ich allerdings noch nicht besonders viel erfahrung mit java habe ist mir der Ablauf etwas unklar.

nun ich verstehe zum beispiel nicht wann die Methode "eventDispatched(AWTEvent event)" aufgerufen wird, bei jedem Tastendruck? Wie müsste ich die Methode aufrufen?

Desweiteren ist mir völlig unklar wozu
Code:
Toolkit toolkit = Toolkit.getDefaultToolkit(); 
toolkit.addAWTEventListener(this, eventMask);
da ist.

Ähm ja.. eigentlich ist mir alles bis Zeile 12 größtenteils unklar :(

Wenn jemand einwenig Zeit hätte, ich würde mich sehr über eine Erklärung freuen.. ich möchte Java wirklich lernen also möchte ich in mein Programm nichts einbinden was ich nicht zu 100% verstehe. :)

mit freundlichem Gruß,
Anton M.
 

Illuvatar

Top Contributor
Silkstring hat gesagt.:
Wenn jemand einwenig Zeit hätte, ich würde mich sehr über eine Erklärung freuen.. ich möchte Java wirklich lernen also möchte ich in mein Programm nichts einbinden was ich nicht zu 100% verstehe. :)

Gute Einstellung :toll:

Mit Toolkit#addAWTEventListener kannst du einen Listener hinzufügen, dessen Methode eventDispatched immer aufgerufen wird, wenn ein Java ein Event mitkriegt, das in der eventMask eingestellt wurde, in deinem Fall ruft das Toolkit also bei jedem KEY_EVENT deine Methode eventDispatched auf.
 

Silkstring

Mitglied
danke sehr!

ahja und könnte man so einen listener auch einfach in ein applet einbauen? oder braucht dies je nach system wieder besondere erweiterungen?
 

Silkstring

Mitglied
was mir noch so unklar ist; angenommen ich habe eine main methode von der aus mein programm aufgerufen wird - wie sollte ich von der main methode auf die methode eventDispatched(AWTEvent event) kommen? ich meine ich muss mein programm ja mit einer main-methode ausstatten damit es beginnt - aber wie bringe ich diese main-methode dazu nicht einfach durchzulaufen sondern an einer bestimmten stelle, nämlich da wo nach der taste abgefragt werden soll, anzuhalten und eben zu warten?
ich habe es auch schon mit einer endlosschleife probiert, aber da ist er beim debuggen garnicht erst in die eventDispatched methode reingelaufen nachdem ich überhaupt eine taste gedrückt habe ???:L
ich hab das gefühl das ich mich wirklich blöd anstell im moment aber ich habe leider garkeine vorstellung wie der code verarbeitet wird :|

mit freundlichem gruß :)
 

KSG9|sebastian

Top Contributor
also, bei ner endlos-schleife reagiert dein programm nicht, da es in einer , wie der name schon sage, endlosen schleife hängt und wärend der zeit geht nichts, höchstens du benutzt einen Thread.

Wenn du nur ne Main Methode hast, dann stimmt deine aussage, das programm läuft 1x durch und wird beendet. Wenn du aber ein Frame erzeugst, dann läuft dein Programm solange bis das Frame geschlossen wird.
Und wenn du irgendwo auf das Formular klickst reagiert der eventDispatcher, vorrausgesetzt das Fenster ist aktiv / im Vordergrund.
 

Silkstring

Mitglied
ah.. ähm danke für deine schnelle antwort; bei meinem programm handelt es sich um ein applet und das fenster soll von vornherein aktiv sein - brauche ich da auch einen thread?
warum ich gerade auf main-methode gekommen bin, ich hab daheim zurzeit kein internet und habe nur die möglichkeit von der arbeit aus das forum zu besuchen, da habe ich leider den quellcode meines applets nicht und musste eben mit einer improvisation rumprobieren :)

(achja übrigens wer sich das mal angucken mag einfach mal melden, es könnte für gitarrenspieler recht nützlich sein, ich weiß nur gerade nicht ob ich links hier rein posten darf)

mit freundlichem gruß ;)
 

Silkstring

Mitglied
so ein mist ich habs mal eingefügt und scheinbar verträgt sich der awteventlistener nicht mit applets; ich kriege eine exception zwecks security und access denied :(
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen Swing Verhindern, dass die VerticalScrollbar hüpft bei Pfeilup/-down tastendruck AWT, Swing, JavaFX & SWT 2
T HILFE wie lösche ich gezeichnetes per tastendruck AWT, Swing, JavaFX & SWT 1
S Event Handling konsole Programm mit Tastendruck beenden AWT, Swing, JavaFX & SWT 5
D Bild bewegen mit Tastendruck AWT, Swing, JavaFX & SWT 7
W Funktion per Tastendruck aufrufen. AWT, Swing, JavaFX & SWT 10
A Auf Tastendruck warten AWT, Swing, JavaFX & SWT 9
S Auf Tastendruck reagieren AWT, Swing, JavaFX & SWT 2
K Simuliere Tastendruck, kommt nicht in allen Programmen an AWT, Swing, JavaFX & SWT 5
M JTextField Tastendruck Abfangen AWT, Swing, JavaFX & SWT 3
C Tastendruck simulieren AWT, Swing, JavaFX & SWT 5
J JPanel.addKeyListener() - JEDEN Tastendruck im Panel abfangen AWT, Swing, JavaFX & SWT 2
T Swing JComboBox Einträge nach Tastendruck auswerten und aktualisieren AWT, Swing, JavaFX & SWT 8
R Zeichnen nach Tastendruck AWT, Swing, JavaFX & SWT 3
J JCombobox in JTable klappt beim ersten Tastendruck zu AWT, Swing, JavaFX & SWT 3
M Tastendruck abfangen AWT, Swing, JavaFX & SWT 8
I JComboBox soll auf Tastendruck reagieren AWT, Swing, JavaFX & SWT 4
T SWT - Durch Tastendruck Hilfe öffnen AWT, Swing, JavaFX & SWT 2
K Tastendruck von JButton an JTable senden AWT, Swing, JavaFX & SWT 5
T JOptionPane nicht auf Tastendruck reagieren AWT, Swing, JavaFX & SWT 2
R JComboBox abfragen AWT, Swing, JavaFX & SWT 1
K Swing Buttons erst blinken lassen und dann abfragen, ob sie gedrückt worden sind AWT, Swing, JavaFX & SWT 2
S Labels abfragen AWT, Swing, JavaFX & SWT 6
karlmasutra Java FX Checkbox abfragen AWT, Swing, JavaFX & SWT 2
G Tastatur abfragen AWT, Swing, JavaFX & SWT 0
V RadioButton aktivieren/deaktivieren; Zustand abfragen und wechseln AWT, Swing, JavaFX & SWT 2
E 3D-Grafik LWJGl OpenGL Version vor Erstellung des Displays abfragen AWT, Swing, JavaFX & SWT 2
E Zustand der JCheckBox abfragen AWT, Swing, JavaFX & SWT 1
N 2D-Grafik AffineTransform - Punkte abfragen nach transform() AWT, Swing, JavaFX & SWT 3
M TextArea über mehrere Zeilen - wie Zeileanzahl abfragen? AWT, Swing, JavaFX & SWT 5
M Mausposition auf JPanel abfragen und umrechnen AWT, Swing, JavaFX & SWT 9
O Jcheckbox Status nachträglich abfragen AWT, Swing, JavaFX & SWT 2
jueki Aktuell eingestellten Filter aus einem JFileChooser abfragen. AWT, Swing, JavaFX & SWT 5
A SWT Combo - wie Tastaureingabe abfragen AWT, Swing, JavaFX & SWT 3
M Checkboxen Namen setzten über Parameter => Abfragen? AWT, Swing, JavaFX & SWT 2
Psypsy Swing Abfragen ob ein Fenster verdeckt ist AWT, Swing, JavaFX & SWT 5
G Auf Canvas zeichnen nur über boolean-Abfragen? AWT, Swing, JavaFX & SWT 5
R Swing Abfragen, ob ein jButton gedrückt _IST_ AWT, Swing, JavaFX & SWT 6
C JFrame nach JPanel abfragen AWT, Swing, JavaFX & SWT 6
L Swing MousePosition in einem JPanel abfragen AWT, Swing, JavaFX & SWT 4
D Swing Tabellen-Namen im ListSelectionListener abfragen AWT, Swing, JavaFX & SWT 2
G Bildeigenschaften abfragen (Metadaten) AWT, Swing, JavaFX & SWT 7
T Swing JCheckBox: Wie getState() abfragen? AWT, Swing, JavaFX & SWT 2
X RGB abfragen von Image auf JFrame AWT, Swing, JavaFX & SWT 10
C Abfragen welcher Tab aktiv ist? AWT, Swing, JavaFX & SWT 2
G Großbuchstaben abfragen mit Keycode Methoden AWT, Swing, JavaFX & SWT 5
R Methode der Class im JComboBox abfragen AWT, Swing, JavaFX & SWT 2
Daniel_L Nachrichten/Event aus nicht-modalen Dialogen abfragen? AWT, Swing, JavaFX & SWT 4
G Abfragen, wann JFrame dargestellt ist AWT, Swing, JavaFX & SWT 3
H JProgressBar in TableColumn von JTable setzen/abfragen AWT, Swing, JavaFX & SWT 5
G Namen mehrer Checkboxen abfragen AWT, Swing, JavaFX & SWT 7
D Mit Java Postfach abfragen AWT, Swing, JavaFX & SWT 3
P Breite und Höhe des contentPane abfragen AWT, Swing, JavaFX & SWT 3
A Header abfragen, überprüfen AWT, Swing, JavaFX & SWT 23
F Checkboxen in JTable abfragen AWT, Swing, JavaFX & SWT 2
T (WACOM) Grafik Tablet abfragen AWT, Swing, JavaFX & SWT 3
O Abfragen beim öffnen oder danach ausführen? AWT, Swing, JavaFX & SWT 4
A JCheckBox abfragen AWT, Swing, JavaFX & SWT 6
G jComboBox abfragen? AWT, Swing, JavaFX & SWT 2
G Sicherheitseinstellungen für Verzeichnis abfragen WIN 2000 AWT, Swing, JavaFX & SWT 2
U JTable Position der Spalte abfragen AWT, Swing, JavaFX & SWT 7
R Zentral Veränderungen auf einer Maske/Formular abfragen AWT, Swing, JavaFX & SWT 6
T JRadioButton abfragen AWT, Swing, JavaFX & SWT 1
G wie abfragen wer event ausgelöst hat? AWT, Swing, JavaFX & SWT 2
S Alle EventListener einer JComponent abfragen? AWT, Swing, JavaFX & SWT 3
F Wie bestimmte Obj. einer ContentPane abfragen und vergl? AWT, Swing, JavaFX & SWT 11
F Status von RadioButtons abfragen AWT, Swing, JavaFX & SWT 5
$ Layoutabhängige größe von JLabel für Icon abfragen AWT, Swing, JavaFX & SWT 2
G Bildpixel ansprechen und Farbwerte abfragen AWT, Swing, JavaFX & SWT 4
I Globale Tastatur-Events abfragen AWT, Swing, JavaFX & SWT 3
M JButton in JComponent abfragen AWT, Swing, JavaFX & SWT 6
V sellectAll() - Zustand abfragen AWT, Swing, JavaFX & SWT 8
D Farbe einer Grafik über den Cursor abfragen AWT, Swing, JavaFX & SWT 6
A instanceof einer JComboBox abfragen AWT, Swing, JavaFX & SWT 4
H Abfragen des Betriebssystems AWT, Swing, JavaFX & SWT 3
M Look and Feels dynamisch abfragen AWT, Swing, JavaFX & SWT 13
W JTextfield aktualisieren / Wert aus Datenbank neu abfragen AWT, Swing, JavaFX & SWT 2
L Inhalt von ausgewählte Spalten aus JTable abfragen AWT, Swing, JavaFX & SWT 4
C JList Inhalte abfragen AWT, Swing, JavaFX & SWT 2
P Tastendrücke abfragen AWT, Swing, JavaFX & SWT 3
H Mausereigniss abfragen AWT, Swing, JavaFX & SWT 2
A showConfirmDialog (Rückgabewert abfragen?) AWT, Swing, JavaFX & SWT 3
G JTextPane: Eigenschaften des selektierten Bereichs abfragen AWT, Swing, JavaFX & SWT 2
O Display Env. Variable unter (X11) von ClientApp. abfragen AWT, Swing, JavaFX & SWT 2
M Abfragen von Buttons in einem Panel einer anderen Klasse AWT, Swing, JavaFX & SWT 4
T Pixel nach Farbwert abfragen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben