ファイルの順番が常に降順になってしまうときは

投稿日: 更新日:

以前、インターネット上で何かファイルを保存しようとするたびに、
表示されるダイアログ形式のエクスプローラにて、毎回ファイルが昇順ではなく降順に表示されてしまうという事件が起きました^^
右クリックから並び替えすれば元に戻るのですが、エクスプローラでファイルを開くたびにまたアイコンが降順に並べ替えられてしまうという呪い。
「すべてのフォルダに適用」もきかなかったような気がする。
それから、数ヶ月後に、直す方法をようやく見つけて、まあその場限りで直せたのですが
なぜ直ったか、いまいちよく分からなかったので、もう一度調べてみようと思いました。
で、問題はエクスプローラの設定が保存されているレジストリ
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellState“です。
中は36byteのバイナリで記述されているのですが、この中には一体なにが書きこまれているのか、調べてみました。
typedef struct {
BOOL fShowAllObjects:1; 全てのファイルを表示する
BOOL fShowExtensions:1; 拡張子を表示する
BOOL fNoConfirmRecycle:1;  削除するときに確認を表示する
BOOL fShowSysFiles:1; システムファイルを表示する
BOOL fShowCompColor:1; 暗号化や圧縮されたNTFS圧縮ファイルをカラーで表示する
BOOL fDoubleClickInWebView:1; ダブルクリックでウェブ上に表示する
BOOL fDesktopHTML:1; アクティブデスクトップを使用する
BOOL fWin95Classic:1; enforce Microsoft Windows 95 Shell behavior and restrictions. 訳すの面倒
BOOL fDontPrettyPath:1; prevent the conversion of the path to all lowercase characters. 訳すの面倒
BOOL fShowAttribCol:1; 使用されていない
BOOL fMapNetDrvBtn:1; NetworkDriveを表示する
BOOL fShowInfoTip:1; ファイルやフォルダでポップアップで説明を表示する
BOOL fHideIcons:1; デスクトップのアイコンを隠す
BOOL fWebView:1; ウェブページとして表示する
BOOL fFilter:1; 使用されていない
BOOL fShowSuperHidden:1; OSのファイルを表示する
BOOL fNoNetCrawling:1; 自動で無効なネットワークドライブやプリンタを調べる
DWORD dwWin95Unused; 使用されていない
UINT uWin95Unused; 使用されていない
LONG lParamSort; アイコンを並び替える
int iSortDirection; アイコンの名前でアルファベットにおいて、1で昇順ソート・-1で降順ソートを行う
UINT version; 使用されていない
UINT uNotUsed; 使用されていない
BOOL fSepProcess:1; ウィンドウズのフォルダを個別のプロセスで起動する
BOOL fStartPanelOn:1; スタートメニューをクラシックスタイルではなく、XP風にする(XPのみ)
BOOL fShowStartPage:1; 使用されていない
BOOL fAutoCheckSelect:1; フォルダをクラシックスタイルではなく、Vista風にする(Vistaのみ)
BOOL fIconsOnly:1; サムネイルを利用せずに、一般的なアイコンのみ表示する(Vistaのみ)
BOOL fShowTypeOverlay:1; 実行ファイルのアイコン?サムネイルのこと?なんたらかんたら(Vistaのみ
UINT fSpareFlags:13; 字あまり
} SHELLSTATE, *LPSHSHELLSTATE;

SHELLSTATE Structure ()より

話し変わるけど、「UINT fSpareFlags:13;」このビットフィールドのデータがどのようになっているのかよく分からない^;
うん、でこの中のソート関係の設定、「lParamSort」と「iSortDirection」が、その変なことを起こさせる原因になると思う。
一応この2つの設定は4byteだから、簡単に目でなおせそうな気がする。
0でデフォルトだから、治したい人は、この2つの項目を両方とも0にしてみるといいかもしれないです。
あと上の方と下の方のBOOL型のパラメータは、ビットフィールド使ってるので、レジストリエディタから直すの激しく面倒。
時間あったから、HSPでこのレジストリを読み込んだり書き込んだり内容を表示するのを書いてみた。
そしたら、実際は拡張子は表示させているのに「fShowExtensions」がFALSEになっていたり、
未使用のはずの「dwWin95Unused」や「fSpareFlags」になぞの数字が書き込まれていた^^;
まだ先月にWindowsインストールしたからレジストリはあんまり汚れていないと思うんだけど。なんでだろう。
関連なページ
広告

コメントをどうぞ(承認された後に公開されます。メールアドレスの記入は自由ですが、記入した場合でも一般公開されることはありません)

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中