从VBscript恢复/最大化应用程序窗口的可靠方法

从VBscript恢复/最大化应用程序窗口的可靠方法,vbscript,Vbscript,我有一个VisualBasic脚本,它可以创建IE实例,隐藏它,操纵它,然后让用户看到它 不幸的是,由于不清楚的原因,恢复功能不能在所有电脑上运行。目前的代码是: objectIE.Visible = True wshShell.AppActivate objectIE 'which is I think wrong as objectIE is not PID. wscript.sleep timoutSleep wshShell.SendKeys restWindow 'which is "

我有一个VisualBasic脚本,它可以创建IE实例,隐藏它,操纵它,然后让用户看到它

不幸的是,由于不清楚的原因,恢复功能不能在所有电脑上运行。目前的代码是:

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对象

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

问题:如何获取IE对象的PID?或者
wshShell.AppActivate objectIE
是正确的,而我看错了方向


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

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

为了实现这一点,您需要在字符串中构建PSScript的行,然后使用。
powershell.exe-ExecutionPolicy Unrestricted-command“get process-Name iexplore”


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

您可以使用PowerShell基于HWND(这是VB中IE对象的属性)获取PID。然后,您可以从Stephen建议的相同PowerShell调用Win32方法。有关如何从HWND获取PID,请参阅:。