vb后台运行的问题,高手进,据说要用到API

2025-05-23 05:39:07
推荐回答(3个)
回答1:

肯定可以了,不过我一般使用计时器+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

回答2:

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

回答3:

timer+GetAsyncKeyState