ファイルの関連付けで、長いファイル名を短いファイル名に変換する。(その2)
関連付けの書き方をちょっと変えるだけで、できちゃいます。
例えば、
"%systemroot%\system32\wscript.exe" "%1" %*
と書く代わりに、
%systemroot%\system 32\..\system32\wscript.exe %1 %*
ここで、
空白を含む長いファイル名を""で囲まないと、%1を短いファイル名に変換するのはShellの仕様です。
KB142275 Long File & Path Names Shorten When Launched Using Association
空白を含む長いファイル名を""で囲まなくても実行できるのは、Win32APIのCreateProcess()の仕様です。
空白を含まない場合は、OSのファイル名のコンベンションの\..\を利用して、架空のフォルダ名に空白を入れます。
« ファイルの関連付けで、長いファイル名を短いファイル名に変換する。 | トップページ | XP SP3 + IE7 / IE8 で、エクスプローラの履歴バーがおかしい。(障害) »