如何用java的jna模拟键盘按键

Python017

如何用java的jna模拟键盘按键,第1张

这个比较简单的,用 java.awt.Robot 来实现就行了。

Robot 对象有几个个方法就是操作键盘的:

void keyPress(int kc)

void keyRelease(int kc)

//例子

import java.awt.AWTException

import java.awt.Robot

import java.awt.event.KeyEvent

public class RobotTest {

private static Robot rbt

static{

try {

rbt=new Robot()

} catch (AWTException e) {e.printStackTrace()}

}

//按下

static void press(int kc){rbt.keyPress(kc)}

//释放

static void release(int kc){rbt.keyRelease(kc)}

static void type(int kc){press(kc)release(kc)}

public static void main(String[] args) {

//F7 长按

//press(KeyEvent.VK_F7)

//F7按一下

type(KeyEvent.VK_F7)

//...

}

}

java.awt.Robot

 //模拟Ctrl+Alt+Z的按下和抬起  

    public void keyBoardDemo()  

    {  

        robot.keyPress(KeyEvent.VK_CONTROL)  

        robot.keyPress(KeyEvent.VK_ALT)  

        robot.keyPress(KeyEvent.VK_Z)  

        robot.keyRelease(KeyEvent.VK_CONTROL)  

        robot.keyRelease(KeyEvent.VK_ALT)  

        robot.keyRelease(KeyEvent.VK_Z)  

    }

问答

下载

社区

推荐频道

活动

招聘

专题

打开CSDN APP

Copyright © 1999-2020, CSDN.NET, All Rights Reserved

打开APP

利用 Java.awt.Robot 模拟键盘输入遇到的几点问题(组合键,双引号) 原创

2016-12-25 22:42:22

追星花狸

码龄7年

关注

刚学习完java se 由于是自学免不了绕弯子,好在各大神鼎力相助,问题都得到解决,希望能够帮到遇到同样问题的朋友。

这些天在做一个超级迷你的MyEclipse,于是用到了Java.awt.Robot中的

void

keyPress(int keycode)

Presses a given key.

void

keyRelease(int keycode)

两个方法,看了几篇博文,都没能解决我的问题。

1.组合键的问题

本来利用这个VK_RIGHT_PARENTHESIS

static int

VK_RIGHT_PARENTHESIS

Constant for the ")" key.

robot.keyPress(KeyEvent.VK_RIGHT_PARENTHESIS)

robot.keyRelease(KeyEvent.VK_RIGHT_PARENTHESIS)

输出“)”是符合逻辑的,可是事实上结果就是报错,无效的键值。

Exception in thread"AWT-EventQueue-0" java.lang.IllegalArgumentException: Invalid keycode