2017年9月
          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
無料ブログはココログ

« ファイルの関連付けで、長いファイル名を短いファイル名に変換する。 | トップページ | XP SP3 + IE7 / IE8 で、エクスプローラの履歴バーがおかしい。(障害) »

2009年4月26日 (日)

ファイルの関連付けで、長いファイル名を短いファイル名に変換する。(その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 で、エクスプローラの履歴バーがおかしい。(障害) »