永发信息网

JAVA robot类控制键盘的问题

答案:3  悬赏:70  手机版
解决时间 2021-02-12 21:38
  • 提问者网友:孤凫
  • 2021-02-12 16:37
我在JAVA写一个快捷键映射工具,比如按下某个按钮后执行快捷键Ctrl+Alt+Delete等。
代码如下:
import java.awt.Robot;
import java.awt.event.KeyEvent;

public class robot_test
{

public static void main(String[] args) {
Robot robot = new Robot();

robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ALT);

robot.keyPress(KeyEvent.VK_DELETE);
robot.keyRelease(KeyEvent.VK_DELETE);

robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_ALT);
}
但是结果无法出现任务管理器的窗口,我将中间的两行代码中的VK_DELETE替换成其他键位,比如替换成VK_UP,Ctrl+ALT+UP在JAVA中是复制下一行的快捷键命令,运行结果成功,我也试过其他一些快捷键组合,发现就Ctrl+Alt+Delete出不来,不知道哪位高人能解答,万分感激!
后来我手动按住Ctrl和Alt键,让程序按下Delete键,这会任务管理器出来了,但是却自动最小化在开始菜单栏的工具栏,没有显示在最前面。实在不解啊~求教高人。
最佳答案
  • 五星知识达人网友:风格不统一
  • 2021-02-12 17:26
楼主你好,我没用过robot类,我也不知到ctrl+alt+delete为什么不能调出任务管理器,但楼主可用下列代码代替 :

package test;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;

public class TestRobot {
public static void main(String[] args) throws AWTException {
Robot robot = new Robot();

robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_ESCAPE);

robot.keyRelease(KeyEvent.VK_ESCAPE);
robot.keyRelease(KeyEvent.VK_SHIFT);
robot.keyRelease(KeyEvent.VK_CONTROL);
}
}
全部回答
  • 1楼网友:鸽屿
  • 2021-02-12 18:49
哈哈,难受了吧,这个我也不知道, 貌似是因为windows的问题,java没那个‘权限’ 就像java里的保留字一样 ,我这个就不让你用 所以我这就就不让你替代。你干着急没办法。 我想屏蔽这个快捷键也是怎么做都做不到 很是郁闷
  • 2楼网友:酒醒三更
  • 2021-02-12 18:17
  • 一: 使用java自带的robot实现对鼠标和键盘的控制, 都是前台的,显示的.
  • 二: 使用java的 jni/jna技术,可以实现后台模拟操作. 不会真实的移动鼠标,点击等..
  • 三: jni和jna 里面涉及一些c语言的知识, 就是利用java去调用windows api 比如,找到浏览器的窗口句柄hwnd ,发送消息postmessage ,去实现键鼠的操作 拓展延伸 大漠插件(dm.dll),还不错.封装了很多常用的方法,比如找颜色,找图片,文字识别,键盘操作,鼠标操作等. 免费版基本够使用了.推荐 使用c#来调用dm.dll     注意: 不推荐java调用大漠插件,因为有少数的函数,java调用不起作用...
  • 我要举报
    如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
    点此我要举报以上问答信息
    大家都在看
    推荐资讯