vbs如何使用组合键

语句怎么编写 比如:WIN+D 怎么实现 我是VBS菜鸟 高手 指教下
2024-11-22 12:03:29
推荐回答(3个)
回答1:

vbs 默认没有win这个组合键。默认只有ShiftCtrlAlt

为了实现与WIN+D相同的功能(显示桌面),可以考虑使用如下的vbs代码,也是最方便的一种方法:

set objShell = CreateObject("shell.application")
objShell.MinimizeAll

但是,如果引入第三方的支持库,便可以直接调用winapi,这就几乎没什么是做不了的了。

Const VK_LWIN = &H5B
Const VK_D = &H44
Public Const KEYEVENTF_KEYUP = &H2
Set WinAPI = CreateObject("DynamicWrapperX")   
WinAPI.Register "USER32.DLL", "keybd_event", "i=ccll", "f=s"
WinAPI.keybd_event VK_LWIN, 0, 0, 0
WinAPI.keybd_event VK_D, 0, 0, 0
WinAPI.keybd_event VK_D, 0, KEYEVENTF_KEYUP, 0
WinAPI.keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0

DynamicWrapperX对应的dll可以在http://www.script-coding.com/dynwrapx_eng.html 这里下载。

不过可惜的是x64的系统对此支持不是很好,在所有x64平台的windows需要重新关联.vbs到

%SYSTEMROOT%\SysWOW64\wscript.exe

或者以%SYSTEMROOT%\SysWOW64\wscript.exe 这样传参数的方式启动。

回答2:

Set Wshell=CreateObject("WScript.Shell")Wshel.SendKeys {F1} '发送F1'其它的类似'VBS不能发送WIN这个键。只能用组合键代替Wshel.SendKeys "{CTRL}+{ESC}"

回答3:

ctrl+esc和windows徽标键是等价的