« スクリプトでスリープを抑止する。(その2) | トップページ | 「フォルダショートカット」を作り分ける。 »

2010年3月12日 (金)

ショートカットに相対パスを指定する。(その2)

Vistaでは、ShellExec_RunDLLの仕様が変わったようで、この用途に使えません。:-(
また、フォルダも開けなくなりました。なぜだろう?セキュリティ強化?

%windir%\system32\rundll32.exe shell32.dll,ShellExec_RunDLL "絶対パスまたはファイル名" [引数...]

ファイル名やベース名はPATHを検索します。
相対パスやフォルダ名はNOPになります。

では、相対パスで指定するには、

%windir%\explorer.exe "相対パス"

または、

%windir%\system32\rundll32.exe url.dll,FileProtocolHandler "相対パス"

この場合、引数は指定できません。

引数を指定する場合は、

%windir%\system32\cmd.exe /c start "%cd%" "相対パス" [引数...]

ショートカットのプロパティで、
いずれの場合も、作業フォルダを空にします。
cmd.exeの場合、実行時の大きさを最小化にします。

« スクリプトでスリープを抑止する。(その2) | トップページ | 「フォルダショートカット」を作り分ける。 »