« 任意のフォルダで「写真の印刷ウィザード」を開始するレジストリ定義 | トップページ | ATコマンドやタスクスケジューラのコマンドの指定は? »

2007年2月 1日 (木)

ATコマンドやタスクスケジューラでショートカット(リンク)を実行する。

ATコマンドやタスクスケジューラで、アプリやバッチファイルを実行するとき、
ウィンドウの大きさや作業ディレクトリなどを指定したい。

と思っても、ショートカット(リンク)ファイルはそのままでは指定できません。

ならば、

RunDLL32.EXE URL.DLL,FileProtocolHandler c:\hoge\hoge.lnk

RunDLL32.EXE SHELL32.DLL,ShellExec_RunDLL c:\hoge\hoge.lnk [引数...]

ただし、実行結果の記録が残りません。起動しっ放しになります。

もし実行結果の記録を残すのなら、ショートカット(リンク)ファイルの
代わりにWSHスクリプトファイルを作って、そこから、WScript.Shellの
Run()でウィンドウの大きさを指定して、同期実行するしかないでしょう。
必要なら、WScript.ShellでCurrentDirectoryも変更して。

そういう汎用のスクリプトもあります。
コマンドラインからWScript.ShellのRun()を呼び出すVBScript
WScript.exe ShellRun.VBS [/D:作業ディレクトリ] [/S:表示] [/W] ファイル [引数...]
これなら非表示も可能です。

ただし、間接起動の場合、タスクの終了が子孫まで届きません。

« 任意のフォルダで「写真の印刷ウィザード」を開始するレジストリ定義 | トップページ | ATコマンドやタスクスケジューラのコマンドの指定は? »