弊社にはレガシー アプリケーション (GUI 付き) があります。手動で起動するにはユーザー名とパスワードを入力する必要があるため、再起動後に自動的に起動できません。これを行うプログラムが必要です。そのようなプログラムはありますか? (ユーザー名とパスワードを入力してプログラムを起動します)。Windows Server 2008 を使用しています。
答え1
SendKeys
VBScript を使用してこれを行うこともできます。スクリプト経由で起動されたプログラムに、ほぼすべての種類のキーボード入力を送信できるコマンドがあることは知っています。
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の「タスクスケジューラ」または「スケジュールされたタスク」を使用することをお勧めします。これは、ユーザーの介入なしにプログラムを起動したりスクリプトを起動したりするのに最適です。時刻や再起動後など、さまざまな「トリガー」または「イベント」に基づいてタスクを開始するように設定できます。これはログオンしなくても実行できます。チュートリアルシステムの再起動後にプログラムを起動するタスクを設定する方法を示します。いくつかのパラメータを変更する必要があるかもしれませんが、使い方は簡単です。