社区
Java SE
帖子详情
java如何截获系统消息
bigboy79
2006-03-20 01:34:14
java如何实现截获系统消息?如题,是否真的不可以,急用!
...全文
442
15
打赏
收藏
java如何截获系统消息
java如何实现截获系统消息?如题,是否真的不可以,急用!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weixing979
2006-05-10
打赏
举报
回复
我觉得针对不同的应用应该采用不同的工具
Voxer
2006-05-10
打赏
举报
回复
Java是可以捕获事件的,前提是你的程序和被捕获的程序是在一个JVM内。
一般用于GUI的自动测试。
有二种方式:
1。自定义一个事件队列替代系统的事件队列
import java.awt.EventQueue;
import java.awt.*;
import java.util.*;
public class MyQueueEvent extends EventQueue {//自定义EventQueue的子类
public MyQueueEvent() {
}
public static void main(String[] args) {
SimpleExample.main(new String[]{null}) ;
MyQueueEvent myQueueEvent1 = new MyQueueEvent();
Toolkit.getDefaultToolkit().getSystemEventQueue().push(myQueueEvent1) ;//替代
}
//在这里重载事件分发的方法
public void dispatchEvent(AWTEvent ae){
if(ae.getSource() instanceof javax.swing.JButton)
System.out.println("My apture:"+((javax.swing.JButton)ae.getSource()).getText()) ;
super.dispatchEvent(ae);
}
2。自定义一个事件监听类,加到系统监听中
public class MyEvtListener implements AWTEventListener {
// 把自己定义的事件处理加到系统监听
//这里只监听鼠标和键盘
private MyEvtListener() {
Toolkit.getDefaultToolkit().addAWTEventListener(this,
AWTEvent.MOUSE_EVENT_MASK | AWTEvent.KEY_EVENT_MASK);
}
// 定义自己的事件处理
public void eventDispatched(final AWTEvent eve) {
myprocessEvent(eve);
}
}
UnAgain
2006-05-10
打赏
举报
回复
mark
jingweicool
2006-05-09
打赏
举报
回复
学习
liujiwe79
2006-05-09
打赏
举报
回复
用VC++或Delphi来写一个DLL文件,捕获消息,然后用JAVA中native方法来调用dll文件中的这个方法,VC或delphi获得系统消息的例子网上一大堆,至于java中怎样调用dll文件,应该不难的
terry_yip
2006-04-13
打赏
举报
回复
hook这个概念只存在于windows上面,只有hook才能捕获windows的系统消息,因为java不是专门针对某个操作系统而设计的,所以java2的类库中没这个功能,要实现的话,你用VC++或Delphi来写一个DLL文件,写一个方法捕获消息,然后用JAVA中新增一个native方法来调用dll文件中的这个方法,VC或delphi获得系统消息的例子网上一大堆,至于java中怎样调用dll文件,请看:
http://www.360doc.com/showWeb/0/0/30719.aspx
congliu
2006-04-11
打赏
举报
回复
System.getProperty(String key)
iwlk
2006-04-09
打赏
举报
回复
你改用vc吧
ljdam
2006-04-09
打赏
举报
回复
看得不是太明白,cheng_young(古道西风瘦马)能讲得更详细些吗?
cheng_young
2006-04-09
打赏
举报
回复
windows中有消息队列,相应的AWT中有事件队列EventQueue
如下的辅助事件循环只捕获鼠标点击消息
EventQueue eq = Toolkit.getDefaultToolkit().getSystemEventQueue();
while(true)
{
try
{
AWTEvent e = eq.getNextEvent();
if (e.getID()==MouseEvent.MOUSE_PRESSED)
{
MouseEvent mev = (MouseEvent)e;
Point pt = mev.getPoint();
...
break;
}
}catche(Exception e){}
}
yuzl32
2006-03-22
打赏
举报
回复
人家是运行在虚拟机上,跳出虚拟机去捕获系统消息应该只有用JNI和系统交互.
bigboy79
2006-03-22
打赏
举报
回复
就是不想使用JNI呢,难道Java真的不行吗?
yuzl32
2006-03-21
打赏
举报
回复
用JNI吧,把windows的钩子通过java 的native方法调出来.
bigboy79
2006-03-20
打赏
举报
回复
Windows系统消息,类似Windows程序中的钩子程序的。
treeroot
2006-03-20
打赏
举报
回复
什么系统信息呀
java
获取
系统
消息
本文提供了一段
Java
代码,用于收集计算机的IP地址、MAC地址、操作
系统
名称、架构及版本等信息,并将这些信息封装成XML格式返回。该代码适用于Windows和Linux
系统
。
VB无所不能之三:VB
截获
Windows
消息
的钩子
本文介绍如何使用VB语言创建钩子以
截获
Windows全局
消息
,包括鼠标和键盘事件。详细讲解了钩子原理、
消息
种类及VB编程实现方法。
Java SE
62,622
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章