Wscript.Shell COM对象SendKeys方法未公开Variant参数问题求解
WScript.Shell SendKeys 方法Variant参数说明
这个第二个Variant类型的参数是可选布尔参数Wait,未在多数用户导向的文档中标注,以下是具体说明:
- 参数类型:布尔型(PowerShell中对应
$true/$false) - 默认值:
False - 功能说明:
- 取值为
False(默认)时,方法发送按键指令后立即返回,不等待目标应用程序处理按键事件 - 取值为
True时,方法会阻塞到所有按键事件被目标应用程序处理完成后再返回
- 取值为
底层来源
该方法底层对应Windows Shell COM接口IShellDispatch4的标准方法,官方IDL定义如下:
HRESULT SendKeys([in] BSTR bstrKeys, [in, optional] VARIANT vWait);
多数面向脚本开发者的公开文档只标注了必选的第一个按键字符串参数,遗漏了这个可选的等待参数,只有COM接口的原始定义中可以查到该参数的声明。
用法示例(PowerShell)
# 创建WScript.Shell对象 $wshell = New-Object -ComObject wscript.shell # 启动记事本用于测试 Start-Process notepad Start-Sleep -Milliseconds 300 # 激活记事本窗口 $wshell.AppActivate('无标题 - 记事本') Start-Sleep -Milliseconds 200 # 传入第二个参数$true,等待按键输入完成再返回 $wshell.SendKeys('这是带Wait参数的SendKeys测试内容',$true)
内容的提问来源于stack exchange,提问作者Keith Miller
相关产品推荐
相关产品推荐

