chenyz
驱动牛犊
驱动牛犊
  • 注册日期2001-10-24
  • 最后登录2002-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1854回复:13

Win95下鼠标的中断和键盘的中断有什么不同?

楼主#
更多 发布于:2002-05-15 10:08
照着一本书上的例子学VXD,书上有一个例子是关于鼠标的中断的,其功能是载入后记录鼠标中断的次数,完全能实现功能,但是当我把鼠标中断改成键盘中断后,也就是把IRQ从12改到9,就不能实现功能了,加载都能成功,可是我按键盘,记数却不改变,不知道是怎么回事。
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-05-15 10:15
用softice跟踪
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-05-15 10:16
用softice跟踪看中断服务例程被调用了没有
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
chenyz
驱动牛犊
驱动牛犊
  • 注册日期2001-10-24
  • 最后登录2002-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-05-15 10:31
我是菜鸟,不会用Softice。 :(
chenyz
驱动牛犊
驱动牛犊
  • 注册日期2001-10-24
  • 最后登录2002-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-05-15 10:59
我把源程序贴这,那位帮看一下,谢谢。

程序很简单,就是记录中断次数,在从VXD发消息到应用程序,原来是鼠标中断,所以名字都叫MOUSE,我现在只是把IRQ从12改到9。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2002-05-15 12:48
你确定你用作mouse的时候没有问题?
就算长时间run,也没有问题?
怎么在VxD还有new和delete呀?是VtoolsD重载了?
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2002-05-15 13:19
是谁告诉你键盘的中断是9?!
chenyz
驱动牛犊
驱动牛犊
  • 注册日期2001-10-24
  • 最后登录2002-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-05-15 14:45
VXD是用VtoolsD里的类继承下来的,用做Mouse的时候没问题,运行的时间到不是很长,你可以把IRQ改回12用鼠标试一试。
键盘的中断不是9吗?我查以前在DOS下做的中断程序键盘中断就是9呀,难道到Win95下变了?
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2002-05-15 14:50
我试了你的程序,可以中断。
你用资源管理器好好看看键盘的中断。
要是不知道,你就用1
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-05-15 15:05
对呀
不要想当然认为某个中断是几
看看再说
dos和95可不一样
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
chenyz
驱动牛犊
驱动牛犊
  • 注册日期2001-10-24
  • 最后登录2002-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-05-15 15:43
通过系统看键盘的资源,中断请求是1,于是把程序的IRQ设为1,可是这下连VXD加载都不成功了,由于没有SoftIce,不知道到底哪里出错,但我看了一下系统里键盘的驱动程序,都是SYS文件,也就是WDM驱动,不是VXD,那么我现在用VXD是不是就不行了,我猜应该是hook函数不成功。
chenyz
驱动牛犊
驱动牛犊
  • 注册日期2001-10-24
  • 最后登录2002-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-05-15 15:49
给分是只能给一次的吗?
我想只给出一部分的分,剩下的以后有人回我的帖子再给,这样不行吗?
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2002-05-15 17:56
只能给一次分,znsoft说的。

是你的hook()函数,没有成功。
if(!pMyIRQ->hook())
{
 return -1;
}
12可以,1不行。不知道hook内部干了什么。
原因就你自己找了。
或者你改成framwok C试试。
shyeagle
驱动老牛
驱动老牛
  • 注册日期2002-04-30
  • 最后登录2007-07-31
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-05-16 18:42
PS2键盘和鼠标对应的硬件中断是IRQ12。
[url=http://www.01study.com]01空间网[/url] [url=http://www.01study.com/forum/dispbbs.asp?boardID=73&ID=193&skin=0]版主招募[/url] [img]http://shy2003.vip.sina.com/map/yjs.gif[/img]
游客

返回顶部