なたで日記

いろいろな思ったこと書きますヽ(^▽^ゞ)

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

time 2008/03/13

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

以前、インターネット上で何かファイルを保存しようとするたびに、
表示されるダイアログ形式のエクスプローラにて、
毎回ファイルが昇順ではなく降順に表示されてしまうという事件が起きました。

右クリックから並び替えすれば元に戻るのですが、
エクスプローラでファイルを開くたびにまたアイコンが降順に並べ替えられてしまうという呪いです。
しかも、「すべてのフォルダに適用」をしてもならない。

それから、数ヶ月後、
直す方法をようやく見つけて、まあその場限りで直せたのですが、
なぜ直ったか、いまいちよく分からなかったので、もう一度調べてみようと思いました。

問題はエクスプローラの設定が保存されているレジストリ
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インストールしたからレジストリはあんまり汚れていないと思うのですが。
ShellStateチェックをダウンロード

関連なページ
ファイルやフォルダの並び順が変になってしまった
ファイルの並び順がようやく直った troublog/ウェブリブログ
アイコンの並び順がおかしい(きりしま屋)
フォルダ内のファイルの昇順・降順について – 教えて!goo
ファイルの表示が逆になる
コモンダイアログボックスの並び順が逆順になって戻らない。。 – 教えて!goo
コモンダイアログボックスの並び順が逆順になって戻らない。。 -OKWave

コメントを残す




プロフィール

なたで

なたで

明るくて楽しいことが好きです!モノづくりや旅が趣味です!

RSS フィード RSS feed GitHub GitHub Twitter Twitter YouTube YouTube



sponsored link

タイムライン