如何在 Java 中单击 Windows 键

How to click Windows key in Java

我可以在Java中点击"Windows"键吗?我需要模拟按下 Win + ARROW_UP 键。可能这个按钮有 Key Unicode 并且可以通过 .getKeyFromUnicode() 方法调用?将不胜感激任何帮助。谢谢。

看看 awt 的 KeyEvent:

    /**
     * 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;

尝试使用 Robot class to emulate a key press. Use the Key Event class 的 VK_WINDOWS 常量来按下 windows 键(这可以概括为同时按下向上键和 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);

请记住,如果密钥无效,Robot class 会抛出 IllegalArgumentException。如果您尝试在非 Windows OS.

上按下 Windows 键,我不是 100% 会发生什么

试试这个:

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) 你可以试试这个:

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) 解决您的任务的另一个变体是 sikuli.docs

如果你想模拟按住一个按钮,然后输入另一个按钮,使用type(TheKeyDoingTheAction, KeyModifier.TheKeyYoureHoldingDown它是这样写的:

 type(Key.UP, KeyModifier.WIN)

请在此处查看文档和示例:http://doc.sikuli.org/keys.html

3) 最后,您可以使用以下代码:

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

注意: 这仅适用于 Win OS。

喜欢它。

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();
    }

解决了我的问题,发布非常重要。