2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

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