showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2574回复:18

难哪:(

楼主#
更多 发布于:2002-10-31 10:48
我想在DirectInput下模拟键盘按键,试过了普通的发送键盘消息(WM_KEYDOWN),或者调用SetKeyboardState,..之类的api函数都不行,这两天就看了一下学习写驱动;看了两个DDK和Driverworks的例子:kbfiltr 和 kbdclass,还是不知道怎么解决 :(

请问众高手如何解决呀 :D

DirectInput, 呵呵,就是打星际、暗黑……之类的游戏,这些游戏使用的是DirectInput来读取键盘输入,所以不能通过Windows的消息机制截获输入。 :(

[编辑 -  11/1/02 by  showbrave]
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-10-31 14:40
高手们,快出手啊 ;)
我都抛 ;)了
该出手时就出手啊…… :P
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
板凳#
发布于:2002-10-31 16:06
keybd_event模拟呢?
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-10-31 16:12
发表于: 2002/10/31 - 16:06
keybd_event模拟呢?
 
//////////////////////////
试过了,也不行呀 :( :( :(
不知道DirectInput是怎么做的:(
惨哪 :(
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-10-31 18:34
还没有大侠出手吗?加分了…… :(
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
5楼#
发布于:2002-11-01 10:08
DirectInput是什么地方的?
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-11-01 10:17
DirectInput, 呵呵,就是打星际、暗黑……之类的游戏,这些游戏使用的是DirectInput来读取键盘输入,所以不能通过Windows的消息机制截获输入。  :)
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
VanCheer
驱动老牛
驱动老牛
  • 注册日期2002-02-21
  • 最后登录2003-08-28
  • 粉丝0
  • 关注0
  • 积分-20分
  • 威望-10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-01 10:52
高手们,快出手啊 ;)
我都抛 ;)了
该出手时就出手啊…… :P

抛那个没用
抛点分吧,大家都喜欢
[img]http://www.driverdevelop.com/forum/upload/VanCheer/2003-03-21_mon.gif[/img][img]http://www.driverdevelop.com/forum/upload/VanCheer/2002-12-07_smallbaby.jpg[/img]
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-01 11:39
好啊,我再抛;)外加10分了,这是我今天的最大分了 :(
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-03 09:47
再加10分:)

50分了啊,大侠!快出手,不要犹豫了 :D
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-04 10:00
再加10分:)

60分了啊,大侠!快出手,不要犹豫了 :D

大家快进来啊,最后都不知道,大家就把分分了吧,来者有份。 :D
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
sam_h
驱动牛犊
驱动牛犊
  • 注册日期2001-04-19
  • 最后登录2012-01-25
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-11-04 11:36
用Sendinput函数,保证可以。这个函数的用法请参见MSDN。我用过这个函数做过手柄模拟键盘按钮,非常好用!

给分吧你就。:)
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-11-04 13:53
用Sendinput函数,保证可以。这个函数的用法请参见MSDN。我用过这个函数做过手柄模拟键盘按钮,非常好用!

给分吧你就。:)


下面是我封装之后的函数,可是在DirectInput下仍然不行,在普通应用程序中是可以的。
可否把你的那几行代码贴上来?多谢了!

#define KEYEVENTF_SCANCODE    0x0008

void SendKeyInput(WORD wVK, WORD wSanCode)
{
INPUT Input;
int nRet;

Input.type = INPUT_KEYBOARD;
Input.ki.dwExtraInfo = 0;
Input.ki.dwFlags = KEYEVENTF_SCANCODE;
Input.ki.time = 0;
Input.ki.wScan = wSanCode;
Input.ki.wVk = wVK;
nRet = SendInput(1, &Input, sizeof(INPUT));

Input.ki.dwFlags = KEYEVENTF_SCANCODE | KEYEVENTF_KEYUP;
nRet = SendInput(1, &Input, sizeof(INPUT));
}
 :D
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-11-04 14:14
参照Kbfilter做一个键盘过滤驱动吧,一切都搞定了。

[编辑 -  11/4/02 by  Tom_lyd]
Tom_lyd
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-11-04 14:41
参照Kbfilter做一个键盘过滤驱动吧,一切都搞定了。

[编辑 -  11/4/02 by  Tom_lyd]

可是如果我要插入按键呢?
在Kbfilter中我应该调用哪个API或者接口呢? :)
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-11-04 15:51
[quote]参照Kbfilter做一个键盘过滤驱动吧,一切都搞定了。

[编辑 -  11/4/02 by  Tom_lyd]

可是如果我要插入按键呢?
在Kbfilter中我应该调用哪个API或者接口呢? :) [/quote]
你有没有看过Kbfilter的源代码?
Tom_lyd
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-11-04 15:59
[quote][quote]参照Kbfilter做一个键盘过滤驱动吧,一切都搞定了。

[编辑 -  11/4/02 by  Tom_lyd]

可是如果我要插入按键呢?
在Kbfilter中我应该调用哪个API或者接口呢? :) [/quote]
你有没有看过Kbfilter的源代码? [/quote]
有看过。
DDK中的代码:KbFilter_ServiceCallback(...)这个函数应该是处理过虑的吧。
下面的代码:
    (*(PSERVICE_CALLBACK_ROUTINE) devExt->UpperConnectData.ClassService)(
        devExt->UpperConnectData.ClassDeviceObject,
        InputDataStart,
        InputDataEnd,
        InputDataConsumed);
是用来处理按键的吗?如果我要模拟按键的话,我要怎么来调呢?一直没有搞懂这几个参数的意思。
呵呵,谢谢了大侠。
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
showbrave
驱动牛犊
驱动牛犊
  • 注册日期2002-10-17
  • 最后登录2004-12-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-11-04 16:02
再加10分啊,大侠们。 ;)
[url]http://www.MiniLyrics.com[/url] [img]http://www.minilyrics.com/images/hehe.jpg[/img]
cnjims
驱动牛犊
驱动牛犊
  • 注册日期2005-05-10
  • 最后登录2011-03-09
  • 粉丝0
  • 关注0
  • 积分101分
  • 威望20点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2005-05-16 14:31
不知道楼主解决没有?
游客

返回顶部