質問: 普段のルーチンワークを登録して windowsを自動的に操作し、作業を減らそうと思い、PowerShellを勉強しています。 そこでどうしてもわからない疑問があり、質問させていただきました。 本当に簡単なスクリプトなのですが Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName Microsoft.VisualBasic Add-Type -AssemblyName System.Windows.Forms for ($i=0; $i -lt 10; $i++){ sleep -s 1 [System.Windows.Forms.SendKeys]::SendWait("{TAB}") } このようなスクリプトを書いて実行したとき、TABキーがアクティブなウィンドウに1秒ごとに入力されます。 メモ帳をアクティブにした場合はテキストエリアにTABが入力され、エクスプローラ等をアクティブにした場合はエクスプローラ内でフォーカスが移っていきます。 しかし、インストーラーを実行したときのインストールウィザードやタスクマネージャー、コントロールパネルから開くシステムの詳細設定等のウィンドウでは キーが送信されず、フォーカスが移っていきません。 (実際のキーボードでTABキーを入力した場合はインストーラー等でもフォーカスが移ります) このキーを送信できるウィンドウと送信できないウィンドウは何が違うのでしょうか。 また、どのようなスクリプトにすればインストーラーやタスクマネージャー等にキーを送信できますでしょうか。 よろしくお願いいたします。 なお、環境はwindows10です
回答: こんにちは。 Stack Overflowのこちらの質問と同じ事例に見受けられます。 * SendKeys in VBScript not working for taskmgr PowerShellコンソールを管理者として実行し、昇格した状態で試してみてください。