+ -
当前位置:首页 → 问答吧 → 【讨论】请教有关microwindows键的问题-急!

【讨论】请教有关microwindows键的问题-急!

时间:2005-07-21

来源:互联网

如果我想按一个键相当于按了Alt和1这两个键,那该怎么办?可以在键盘驱动模拟出来让microwindows知道是按了复合键吗?
请高手指点,谢了!      

作者: mavisjhsw   发布时间: 2005-07-21

这应该不是驱动作的事吧
应该是event对应keycode
keycode对应keybinding
应该是api里什么实现的      

作者: AIKO_sex   发布时间: 2005-07-22

[QUOTE=AIKO_sex]这应该不是驱动作的事吧
应该是event对应keycode
keycode对应keybinding
应该是api里什么实现的[/QUOTE]
如果非要在microwindows的键盘驱动(kbd_××.c)中去实现这一功能呢?
复合键的工作原理我不是很懂。      

作者: mavisjhsw   发布时间: 2005-07-22

[QUOTE=mavisjhsw]如果非要在microwindows的键盘驱动(kbd_××.c)中去实现这一功能呢?
复合键的工作原理我不是很懂。[/QUOTE]
他键盘处理不是对shift alt等组合键有modifiers处理么,你按照这样处理  :confused:      

作者: AIKO_sex   发布时间: 2005-07-22

我的意思是,正好和复合键相反,我是按一个键,但到API时是认为我按了复合键(如Alt_F1键)。
另外,想问一下,按键信息具体是怎么传送的?从驱动层返回后键的信息到哪里去了?      

作者: mavisjhsw   发布时间: 2005-07-25

[QUOTE=mavisjhsw]我的意思是,正好和复合键相反,我是按一个键,但到API时是认为我按了复合键(如Alt_F1键)。
另外,想问一下,按键信息具体是怎么传送的?从驱动层返回后键的信息到哪里去了?[/QUOTE]
应该是返回ascii码吧,如果把modifiers的值由2个直接改成你原来的一个键的值不就解决了么,

但是有个问题,你一个键,如果担任了这个角色,那么原先这个键的角色不是就没了么 :confused:      

作者: AIKO_sex   发布时间: 2005-07-26

[QUOTE=AIKO_sex]应该是返回ascii码吧,如果把modifiers的值由2个直接改成你原来的一个键的值不就解决了么,

但是有个问题,你一个键,如果担任了这个角色,那么原先这个键的角色不是就没了么 :confused:[/QUOTE]

对,不要原来的角色了!(因为我的键盘比普通键盘的键要多所以也无所谓“原来的角色”了)
我是要一个键产生两个键的效果,怎么“把modifiers的值由2个改成原来的一个键的值”就能解决问题了呢?请解释,谢谢!      

作者: mavisjhsw   发布时间: 2005-07-27

发现只改驱动是行不通的:(所以打算改api,可是不知道怎样做。
microwindows是不是通过GsDeliverKeyboardEvent(nanox/srvevent.c)把键盘信息传到上层,如果是这样,我在GsCheckKeyboardEvent(由它来调用GsDeliverKeyboardEvent)函数中加入复合键就可以了:
case 需要转换为复合键的键:
     GsDeliverKeyboardEvent(Alt键);
       GsDeliverKeyboardEvent(F1键);
这样行得通不?      

作者: mavisjhsw   发布时间: 2005-07-28