浙大城市学院招聘:vb后台运行的问题,高手进,据说要用到API

来源:百度文库 编辑:中科新闻网 时间:2024/04/27 22:26:38
小弟用VB编了一个程序,但是我想让它在不是当前活动窗口的情况下,也就是失去焦点的情况下其热键依然能使用,并且程序依然能输出结果,请问这个函数应该怎么写?
小弟不胜感激!

仅仅使用VB恐怕做不到,因为要使用Hook(钩子),Hook利用DLL注入原理实现内存全局映射,而VB似乎不可开发标准DLLs(VB只能开发 ActiveX DLL)
建议使用Delphi或者VC之类的开发工具开发Hook DLL,然后使用VB调用

肯定可以了,不过我一般使用计时器+GetAsyncKeyState来使用,效果也差不多,就是按键按下不放的话,老是重复检测的到,不过也没什么大影响。

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'VK_F5(74) F5(key)

' VK_F6(75) F6(key)

' VK_F7(76) F7(key)

' VK_F8(77) F8(key)

If GetAsyncKeyState(&H74) Then ' F5(key) 键按下
End If

' If GetAsyncKeyState(&H1) Then '鼠标左键按下
' End If
If GetAsyncKeyState(&H75) Then ' F6(key) 键按下

End If

If GetAsyncKeyState(&H77) Then ' F8(key) 键按下
End If

' If GetAsyncKeyState(&H43) Then 'C键按下
' End If

End Sub

timer+GetAsyncKeyState