vbs 默认没有win这个组合键。默认只有Shift + Ctrl ^ Alt %
为了实现与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
Set Wshell=CreateObject("WScript.Shell")Wshel.SendKeys {F1} '发送F1'其它的类似'VBS不能发送WIN这个键。只能用组合键代替Wshel.SendKeys "{CTRL}+{ESC}"
ctrl+esc和windows徽标键是等价的