2016-03-31 7 views
3

Kann ich auf "Windows" -Taste in Java klicken? Ich muss Win + ARROW_UP-Tasten drücken emulieren .Möchten Sie diese Schaltfläche hat Key Unicode und es könnte durch .getKeyFromUnicode() Methode aufgerufen werden? irgendeine Hilfe. DankeKlicken Sie auf Windows-Taste in Java

+0

Dies ist für Ihr Java-Programm? Keine systemweite Tastenbetätigung? – BevynQ

+0

@BevynQ, das ist für meine Java-App. – bigJava

Antwort

1

1) Sie können einfach diese versuchen:

private void pressKey() { 

    try { 
     Robot r = new Robot(); 
     r.keyPress(KeyEvent.VK_WINDOWS) 
     r.keyPress(KeyEvent.VK_UP); //Windows button is still pressed at this moment 
     r.keyRelease(KeyEvent.VK_UP); 
     r.keyRelease(KeyEvent.VK_WINDOWS);   
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

2) Eine weitere Variante für Ihre Aufgabe zu lösen - ist sikuli.docs

Wenn Sie das Drücken und Halten einer Taste simulieren möchten, während Sie dann eine andere eingeben, verwenden Sie type(TheKeyDoingTheAction, KeyModifier.TheKeyYoureHoldingDown Es ist w Ritten wie folgt aus:

type(Key.UP, KeyModifier.WIN) 

Bitte überprüfen Sie Dokumente und Proben hier:

Runtime.getRuntime().exec("rundll32 user32.dll,LockWorkStation"); 

Hinweis: Dies funktioniert für Win http://doc.sikuli.org/keys.html

3) Schließlich Sie den folgenden Code verwenden könnte Nur Betriebssystem.

+0

Vielen Dank für die Ideen. Das ist richtig, was ich brauche. Sehr hilfreiche Antwort! – bigJava

+1

Bitte beachten Sie, dass dies nur für Win OS funktioniert. Gern geschehen –

1

einen Blick auf KeyEvent von AWT Nehmen:

/** 
    * Constant for the Microsoft Windows "Windows" key. 
    * It is used for both the left and right version of the key. 
    * @see #getKeyLocation() 
    * @since 1.5 
    */ 
    public static final int VK_WINDOWS     = 0x020C; 
+0

Danke. Dies ist sicherlich eine interessante Lösung. – bigJava

1

die Robot Klasse Probieren Sie eine Taste drücken emulieren. Verwenden Sie die VK_WINDOWS-Konstante Key Event Klasse die Windows-Taste drücken (dies verallgemeinert werden kann auch die Aufwärts-Taste drücken, mit VK_UP):

import java.awt.Robot; 
import java.awt.event.KeyEvent; 
Robot r = new Robot(); 
r.keyPress(KeyEvent.VK_WINDOWS); 
r.keyRelease(KeyEvent.VK_WINDOWS); 

Denken Sie daran, die Robot Klasse löst eine Illegal, wenn der Schlüssel ungültig ist. Ich bin nicht 100% auf was passiert, wenn Sie versuchen, die Windows-Taste auf einem Nicht-Windows-Betriebssystem zu drücken.

+0

Danke Peter! Das ist hilfreich – bigJava

1

Versuchen Sie folgendes:

private void pressKey() { 

    try { 
     Robot r = new Robot(); 
     r.keyPress(KeyEvent.VK_WINDOWS + KeyEvent.VK_UP); 
     r.keyRelease(KeyEvent.VK_WINDOWS); 
     r.keyRelease(KeyEvent.VK_UP); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
-1

Liebte es.

try { 
     Robot r = new Robot(); 
     r.keyPress(KeyEvent.VK_WINDOWS + KeyEvent.VK_UP); 
     r.keyRelease(KeyEvent.VK_WINDOWS); 
     r.keyRelease(KeyEvent.VK_UP); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Mein Problem gelöst und Freigabe ist sehr wichtig.

Verwandte Themen