如何捕获当前按下了F10键

dracularking 2007-03-30 02:05:05
这个捕获不是在任何component中执行,即不是通过实现KeyListener接口方法来做。大家用过按键精灵就知道,F10启动,F12暂停,但是能不能在java程序启动后像按键一样广泛地捕捉到按键信息呢?
...全文
247 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dracularking 2007-03-30
  • 打赏
  • 举报
回复
回lovesnow1314(流浪):
谢谢,但目前已经实现了全局模拟按键,但就不能全局捕获? 这两者有区别吗?
jianghuxiaoxiami 2007-03-30
  • 打赏
  • 举报
回复
mark
lovesnow1314 2007-03-30
  • 打赏
  • 举报
回复
Java应该无法实现全局的键盘Hook,因为Java运行于JVM上,必须用C or C++写全局Hook Dll才可以。
dracularking 2007-03-30
  • 打赏
  • 举报
回复
目前我只做到这里,不受按键信息控制的输出按键,可能有一些稀奇古怪的类能够实现这个功能,希望有知情的高手能指点一二。

import java.awt.Robot;
import java.awt.event.KeyEvent;

public class SimulatedEnter
{
private static int count;
private static boolean isLoopStart;


public static void main(String[] args)
{
try
{
Robot robot = new Robot();
while (true)
{
//while (isLoopStart)
{
robot.keyPress(KeyEvent.VK_ENTER);
robot.delay(10);
robot.keyRelease(KeyEvent.VK_ENTER);
count++;
}
robot.delay(100);
}
}
catch (Exception e)
{}
}


public void keyPressed(int keycode)
{
//int keycode = e.getKeyCode();
System.out.println("keyPressed");
switch (keycode)
{
case KeyEvent.VK_F10:
System.out.println("VK_F10");
isLoopStart = true;
break;
case KeyEvent.VK_F12:
isLoopStart = false;
break;
default:
break;
}
}
}
yiyi2007 2007-03-30
  • 打赏
  • 举报
回复
我也想知道
顶~~~

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧