0

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

AppActivateここでは、PIDをメソッドに渡す必要があると思います。

質問: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()か、すべてのコマンドを1つの(短い)スクリプトに入れます。

于 2012-12-06T13:10:05.400 に答える