请问大家,运用全局Hook来实现程序的热键功能,跟调用API中的GetAsyncKeyState函数来实现程序热键功能,那一个比较好呢?速度那一个更快,占用系统资源,那一个比较少呢?
解决方案 »
- 信息:大名鼎鼎的Lavolpe (Keith)将要在Planet-Source-Code上发布Unicode Textbox源码
- update语法错误怎么会事?
- 请问vb如何实现窗体嵌入桌面和有形无影(即鼠标可以穿透)?
- 怎么移动无标题窗口?
- api函数exitwindowex 怎样用????菜鸟
- .ico用什么软件做??(得到答案就结帖)
- 一个关于MSFlexGrid的小问题?请帮忙!!!
- 在线等,如何结束XP下的EXPLORER.EXE.并不让其重新启动EXPLORER.EXE.
- 关于VB修改内存
- **********VB老手们,行动起来,开个作品交流会吧!!!中国软件万岁!!!*************
- 语法的小问题,立即给分
- 请问New 和 CreateObject的差别?
可以定义像Ctrl+0这样的热键,个数任意
但是编译好后,当窗体隐藏后就没用了。
why!
如果谁能解决
力马给出所有源码
你必须将钩子写成变通的DLL,然后再在VB中调用,否则就会出现你所说的情况,但VB本身只能写ActiveX dll ,所以必须用其它工具来做DLL,如VC.就这么多啦.
eg
Dim mkeyHook As ObjectPrivate Sub Form_Load()
Label1.Caption = "Please Press Ctrl+D"
Set mkeyHook = CreateObject("Keyhook.mykeyhook") '创建一个keyhook实例
'定义第一个快捷键 Ctr+D
'obj:对象一般为me
mkeyHook.mykeyevents.Add Me, "T1", HK_KEYD, &H11
'定义第二个快捷键 Ctr+9
mkeyHook.mykeyevents.Add Me, "T2", HK_KEY9, &H11
mkeyHook.LoadHook '挂接键盘钩子
End SubPrivate Sub Form_Unload(Cancel As Integer)
mkeyHook.UnLoadHook '释放键盘钩子
End Sub
Public Sub T1()
' mkeyHook.mykeyevents.Item(1).bkeydown = True
MsgBox "Please Press Ctrl+9"
End SubPublic Sub T2()
' mkeyHook.mykeyevents.Item(2).bkeydown = True
MsgBox "hello T2"
End Sub
我的主页 k_badboy.nease.net