ユーザー名とパスワードを必要とする Windows アプリを自動的に起動する

ユーザー名とパスワードを必要とする Windows アプリを自動的に起動する

弊社にはレガシー アプリケーション (GUI 付き) があります。手動で起動するにはユーザー名とパスワードを入力する必要があるため、再起動後に自動的に起動できません。これを行うプログラムが必要です。そのようなプログラムはありますか? (ユーザー名とパスワードを入力してプログラムを起動します)。Windows Server 2008 を使用しています。

答え1

SendKeysVBScript を使用してこれを行うこともできます。スクリプト経由で起動されたプログラムに、ほぼすべての種類のキーボード入力を送信できるコマンドがあることは知っています。

使い方の一例をご紹介します:

set WshShell = WScript.CreateObject("WScript.Shell") 

WshShell.run "runas /user:domain\user %comspec%" 'Open command prompt  
WScript.Sleep 1000 
WshShell.SendKeys "password" 'send password   
WshShell.SendKeys "{ENTER}"    
WScript.Sleep 1000 

'Open IE 
WshShell.SendKeys Chr(34) + "C:\PROGRAM FILES\INTERNET EXPLORER\IEXPLORE.EXE"_
  + Chr(34) 
WshShell.SendKeys "{ENTER}" 

WshShell.SendKeys "exit"  'Close command prompt 
WshShell.SendKeys "{ENTER}" 
WScript.Sleep 1000 

WshShell.SendKeys "{TAB}" 
WshShell.SendKeys "http://www.microsoft.com" 'Send internet page to open to IE 
WshShell.SendKeys "{ENTER}" 

もう一つの使い方はこれですそれなしWshShell

Dim ProcID As Integer
' Start the Calculator application, and store the process id.
ProcID = Shell("CALC.EXE", AppWinStyle.NormalFocus)
' Activate the Calculator application.
AppActivate(ProcID)
' Send the keystrokes to the Calculator application.
My.Computer.Keyboard.SendKeys("22", True)
My.Computer.Keyboard.SendKeys("*", True)
My.Computer.Keyboard.SendKeys("44", True)
My.Computer.Keyboard.SendKeys("=", True)
' The result is 22 * 44 = 968.

答え2

Windowsのバージョンに応じて、Windowsの「タスクスケジューラ」または「スケジュールされたタスク」を使用することをお勧めします。これは、ユーザーの介入なしにプログラムを起動したりスクリプトを起動したりするのに最適です。時刻や再起動後など、さまざまな「トリガー」または「イベント」に基づいてタスクを開始するように設定できます。これはログオンしなくても実行できます。チュートリアルシステムの再起動後にプログラムを起動するタスクを設定する方法を示します。いくつかのパラメータを変更する必要があるかもしれませんが、使い方は簡単です。

関連情報