VB中sendkeys 问题

2025-02-02 02:08:00
推荐回答(2个)
回答1:

VB6诞生的时候,键盘上还没有那个win键(与此类似的就是那时候的鼠标是没有滚轮的),所以VB6不直接支持win键(以及鼠标滚轮),SendKeys也不能模拟win键。下面的代码在WinXP可以模拟win键,但在Win7无效:

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const VK_LWIN = &H5B

Private Sub Command1_Click()
keybd_event VK_LWIN, 0, &H1, 0
keybd_event VK_LWIN, 0, &H2, 0
End Sub

我暂时还没找到在Win7模拟win键的方法

vbNormalFocus是VB内部的一个常数,表示用Shell命令打开的外部程序窗口保持正常状态(非最大化、最小化及隐藏状态)并且使其获得焦点

回答2:

用如下方法重启VB:右键单击,点“以管理员身份运行”,点是或输入管理员密码。
打包成EXE后,运行程序也需要赋予权限。
或者禁用Windows的UAC功能。