阅读:2574回复:18
难哪:(
我想在DirectInput下模拟键盘按键,试过了普通的发送键盘消息(WM_KEYDOWN),或者调用SetKeyboardState,..之类的api函数都不行,这两天就看了一下学习写驱动;看了两个DDK和Driverworks的例子:kbfiltr 和 kbdclass,还是不知道怎么解决 :(
请问众高手如何解决呀 :D DirectInput, 呵呵,就是打星际、暗黑……之类的游戏,这些游戏使用的是DirectInput来读取键盘输入,所以不能通过Windows的消息机制截获输入。 :( [编辑 - 11/1/02 by showbrave] |
|
|
沙发#
发布于:2002-10-31 14:40
高手们,快出手啊 ;)
我都抛 ;)了 该出手时就出手啊…… :P |
|
|
板凳#
发布于:2002-10-31 16:06
keybd_event模拟呢?
|
|
地板#
发布于:2002-10-31 16:12
发表于: 2002/10/31 - 16:06
keybd_event模拟呢? ////////////////////////// 试过了,也不行呀 :( :( :( 不知道DirectInput是怎么做的:( 惨哪 :( |
|
|
地下室#
发布于:2002-10-31 18:34
还没有大侠出手吗?加分了…… :(
|
|
|
5楼#
发布于:2002-11-01 10:08
DirectInput是什么地方的?
|
|
6楼#
发布于:2002-11-01 10:17
DirectInput, 呵呵,就是打星际、暗黑……之类的游戏,这些游戏使用的是DirectInput来读取键盘输入,所以不能通过Windows的消息机制截获输入。 :)
|
|
|
7楼#
发布于:2002-11-01 10:52
高手们,快出手啊 ;) 抛那个没用 抛点分吧,大家都喜欢 |
|
|
8楼#
发布于:2002-11-01 11:39
好啊,我再抛;)外加10分了,这是我今天的最大分了 :(
|
|
|
9楼#
发布于:2002-11-03 09:47
再加10分:)
50分了啊,大侠!快出手,不要犹豫了 :D |
|
|
10楼#
发布于:2002-11-04 10:00
再加10分:)
60分了啊,大侠!快出手,不要犹豫了 :D 大家快进来啊,最后都不知道,大家就把分分了吧,来者有份。 :D |
|
|
11楼#
发布于:2002-11-04 11:36
用Sendinput函数,保证可以。这个函数的用法请参见MSDN。我用过这个函数做过手柄模拟键盘按钮,非常好用!
给分吧你就。:) |
|
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 |
|
|
13楼#
发布于:2002-11-04 14:14
参照Kbfilter做一个键盘过滤驱动吧,一切都搞定了。
[编辑 - 11/4/02 by Tom_lyd] |
|
|
14楼#
发布于:2002-11-04 14:41
参照Kbfilter做一个键盘过滤驱动吧,一切都搞定了。 可是如果我要插入按键呢? 在Kbfilter中我应该调用哪个API或者接口呢? :) |
|
|
15楼#
发布于:2002-11-04 15:51
[quote]参照Kbfilter做一个键盘过滤驱动吧,一切都搞定了。 可是如果我要插入按键呢? 在Kbfilter中我应该调用哪个API或者接口呢? :) [/quote] 你有没有看过Kbfilter的源代码? |
|
|
16楼#
发布于:2002-11-04 15:59
[quote][quote]参照Kbfilter做一个键盘过滤驱动吧,一切都搞定了。 可是如果我要插入按键呢? 在Kbfilter中我应该调用哪个API或者接口呢? :) [/quote] 你有没有看过Kbfilter的源代码? [/quote] 有看过。 DDK中的代码:KbFilter_ServiceCallback(...)这个函数应该是处理过虑的吧。 下面的代码: (*(PSERVICE_CALLBACK_ROUTINE) devExt->UpperConnectData.ClassService)( devExt->UpperConnectData.ClassDeviceObject, InputDataStart, InputDataEnd, InputDataConsumed); 是用来处理按键的吗?如果我要模拟按键的话,我要怎么来调呢?一直没有搞懂这几个参数的意思。 呵呵,谢谢了大侠。 |
|
|
17楼#
发布于:2002-11-04 16:02
再加10分啊,大侠们。 ;)
|
|
|
18楼#
发布于:2005-05-16 14:31
不知道楼主解决没有?
|
|