0

我有 Visual Basic 脚本,其中包括创建 IE 实例、隐藏它、操作它,然后使其对用户可见。

不幸的是,由于不明原因,恢复功能不适用于所有 PC。当前代码是:

objectIE.Visible = True
wshShell.AppActivate objectIE 'which is I think wrong as objectIE is not PID.
wscript.sleep timoutSleep
wshShell.SendKeys restWindow 'which is "% r" and will not work on all locales :(

我认为问题出在这一行:

wshShell.AppActivate objectIE

我想在这里我需要将 PID 传递给该AppActivate方法。

问题:如何获取 IE 对象的 PID?或者wshShell.AppActivate objectIE是正确的,我正在寻找错误的方向?

PS我不能使用应用程序的标题,因为它不是唯一的:(

4

1 回答 1

1

您可以使用 pInvoke 从 PowerShell 脚本调用 Win32 方法。互联网上到处都是这样的例子。对于 PostMessage,这里有一个示例: SendMessage 导致脚本挂起

为此,您需要在字符串中构建 PSScript 行,然后使用例如执行它 powershell.exe -ExecutionPolicy Unrestricted -command "get-process -Name iexplore"

并提取生成的 Id,然后将其发送到调用 的脚本,PostMessage()甚至将所有命令放入单个(短)脚本中。

于 2012-12-06T13:10:05.400 回答