2016-03-22 17 views
0

私は使用しているプログラムのインストールを自動化するためにPowershellスクリプトを作成しようとしています(残念ながら、プログラムにはサイレントインストーラがありません)。 問題は、インストーラウィンドウがsendkeysによって送信されたキーを受け取らないということです。私はちょうどenterキーを押すと動作し、他のウィンドウにsendkeysを入力しても動作しますが、その特定のインストーラウィンドウにsendkeysを使用して送信します何もしない。誰もが前にこの問題に遭遇し、それを解決する方法を知っていましたか?次のように私が使用しようとしているスクリプトは次のとおりです。なぜsendkeyによって送信されたキーをウィンドウが受け取らないのですか?

add-type -AssemblyName microsoft.VisualBasic 
add-type -AssemblyName System.Windows.Forms 

./installer.exe 

start-sleep 1 

[Microsoft.VisualBasic.Interaction]::AppActivate('select setup language') 
start-sleep 1 

[System.Windows.Forms.SendKeys]::SendWait('~'); 

P.S それはタイミングの問題ではありません:私は睡眠時間を変更しようとしたが、それは何か良いを行うことはありません。

ありがとうございます!

+0

PowerShellスクリプトが実行されていない間は、インストーラは起動していますか?異なる特権レベルのウィンドウ間でドラッグアンドドロップ(たとえば)することはできません。 – briantist

+0

@briantist - ご意見ありがとうございます。あなたが何を意味しているのか分かりません。スクリプトがEnterキーを送信したときに、インストーラがフォーカスを持っています。 – shayelk

+0

スクリプトは管理者モードで実行されていますか?そうでない場合は、そのシステム上の管理者であっても、そのスクリプトを管理者権限として実行してください。 –

答えて

0

このスクリプトを管理者として実行するだけで済みます。何度も、管理者権限を持っていても、スクリプトはwinFormsなどの機能を実行できません。 そのスクリプトをAdministrator(Run As Administrator)として実行することをお勧めします。

関連する問題