如何在 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();
}
解决了我的问题,发布非常重要。
我可以在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.
试试这个:
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();
}
解决了我的问题,发布非常重要。