Windows エクスプローラーのすべてのフォルダー タイプにカスタムのデフォルトの並べ替えオプションを強制する方法

Windows エクスプローラーのすべてのフォルダー タイプにカスタムのデフォルトの並べ替えオプションを強制する方法

熱心なモデレーターへの簡単なメモ: これは重複ではありません :)

私の質問は 3 つの部分から成りますが、簡単にするために、もちろん 3 番目の部分のみに答えている回答は回答済みとしてマークします。

  1. なぜこのようなことが起こるのかという観点から、Windows エクスプローラーがどのように動作するかを理解したいと思います。フォルダーにはさまざまな種類 (一般、音楽ライブラリ、フォト ギャラリーなど) があり、Windows はフォルダーの内容に基づいてどの種類であるかを継続的に自動的に決定することは知っています。また、システムにはさまざまな (種類の) ドライブがあり、外付けドライブ、音楽プレーヤー ドライブ、電話ドライブなどがあります。これらすべてに加えて、フォルダーごとの設定が問題の原因となっていますが、並べ替え項目リストがリセットされる理由がわかりません。

    • たとえば、エクスプローラーで D:\Downloads\ に移動し、並べ替えの基準に移動し、詳細に移動して、一番下までスクロールして変更日をクリックし、もう一度並べ替えの基準に移動して変更日を選択します。これで完了です。次に、ブラウザーでファイルを保存すると、ブラウザーが保存場所を尋ねます。D:\Downloads\ を参照します。何だと思いますか? そこに変更日はありません。わかりました。そこでも再度設定します。別の Windows シェル参照メニューで別のプログラムを開きますが、変更日はありません。すべて設定し、再起動するか、完全に便利な Windows 更新プログラムをインストールすると、再びリセットされます。
    • ^ なぜフォルダごとではなくシェルごとなのか、そしてなぜ並べ替えリストがリセットされるのか?この設定は保存されますか?
  2. 私は通常、SUでこのトピックに関連すると思われるほとんどの質問と同じ質問をするでしょう(例えばこれ、 そしてこれ):

    • 並べ替えオプションを変更して、それをすべてのフォルダに適用する方法。 - 質問して答えるのが悪い質問です。意思リセットされるか、すべての種類のフォルダーと、今後接続されるすべてのドライブおよびデバイスに実際には適用されません。
    • システム上のすべてのフォルダを「一般項目」フォルダに強制的に変更する方法を教えてください。そうすれば、すべての一般項目フォルダの並べ替えオプションを変更できます。 - また、これは間違った質問です。なぜなら、a. 一般項目フォルダだけでなく、さまざまな種類のフォルダを用意したいからです。b. 宇宙の何よりも確実なのは、意思最終的には、意図的か設計上の愚かさかに関わらず、MS によってリセットされます。
  3. ここまで読んで、この知識があれば、エレガントな永続回答してください、助けてください、答えてくださいこの10歳の質問しかし、私は別の質問をします。

    • 開発者がアクセスする方法、既存のシェル拡張ハック、バックグラウンドプロセスなど、どんなに侵入的でも構いませんが、それを活用できる方法はありますか?継続的に上書きするWindowsエクスプローラーの並べ替えリストと実際の並べ替え基準- 私たちの - 選んでいただけましたか?ありがとうございます。
    • 説明: 私の目標はシンプルです。右クリックして [並べ替え] メニューに移動するオプションがあるすべての Windows エクスプローラー ウィンドウで、そこに [変更日] を見つけられるようにすることです (サイズ、撮影日など、私が選択したその他のカスタム オプションも)。次に、[変更日で並べ替え] を選択した場合、再度変更するまでその変更が永久に記憶されるようにします。1 つのフォルダーで [変更日] を選択した場合、他のすべての種類のフォルダーも [変更日] にグローバルに変更されるというソリューションで問題ありません。フォルダーごとの設定よりも持続可能と思われます。

過去数年、Windows As A Service のリリースは、大規模なオーバーホールと投資をもたらしました。これは、せいぜい疑問の余地しかありません (たとえば、Windows ドライバーを、誰も欲しがらない侵入的なアプリ ストアの人質にしてしまった)。しかし、この問題や最大ファイル パス長などの日常的な問題は、何十年も対処も回答もされていないままです。MS で働く人が、自社製品を表面的にではなく、実際に使用しているかどうか疑問に思います。いいえ、彼らは気にしているはずです。このまったく明白な基本的な QA の問題が問題であることを認識するためのテレメトリがまだ十分にないだけでしょう...

答え1

私はフォルダビューの包括的な説明に取り組んできましたここまずはそれを見てみましょう。

最初の質問で、保存したビューが「最大限」になっているのではないかと思いました。この質問によって返される値はパワーシェルコード?

((gp "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU").Nodeslots).count

そしてあなたの究極は何ですか、特定の目標??? ビューのデフォルトをカスタマイズする方法をいくつか見つけました。

フォルダに適用表示のデフォルトをカスタマイズする最も簡単な方法です。どのフォルダタイプにカスタムデフォルトが設定されているのかを確認するには、次のコマンドを実行します。パワーシェル:

(Get-Item 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Defaults').Property |
   %{(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\$_").CanonicalName}

OneDrve ですべての基本タイプと対応するタイプを実行すると、出力は次のようになります。

PS C:\> (Get-Item 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Defaults').Property |
>>    %{(Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderTypes\$_").CanonicalName}
Downloads
Generic
Documents
Music
Pictures
Videos
StorageProviderGeneric
StorageProviderDocuments
StorageProviderPictures
StorageProviderVideos
StorageProviderMusic
PS C:\>

フォルダへの適用は、以前に保存されたエクスプローラー ビューには影響しますが、以前に保存された共通ダイアログ ビューには影響しません。そのため、設定がダイアログにも適用されるようにするには、次のコードを実行します。

$Defaults = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Defaults'
$Bags     = 'HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags'
$Custom = ( gi $Defaults ).Property
( gci $Bags -Recurse -depth 1 | ? PSChildName -match 'ComDlg' ) |
    gci | ? PSChildName -in $Custom |
        Remove-Item -Recurse

SearchResults と LIbraires のデフォルトもカスタマイズしたい場合は、通常は存在しないレジストリ エントリを作成する必要がありますが、まずは上記の方法がどのように機能するかを確認してください。

答え2

最後に何をしたかを記憶します。

保存されたビューとフォルダの参照について

Windows 2000 Professional では、使用するビューが Windows エクスプローラに永続的に保存されるとは限りません。[フォルダ オプション] ダイアログ ボックスの [表示] タブにある [各フォルダの表示設定を記憶する] チェック ボックスを使用して、使用するビューを永続的に保存するか一時的に保存するかを制御できます (図 9.3 を参照)。

デフォルトでは、各フォルダーの表示設定を記憶するオプションが有効になっています。

この設定を有効のままにしておくと、次のようになります。

a.. フォルダーのビューに加えた変更は、フォルダーを閉じると自動的に保存されます。

b.. 1 つのフォルダーを表示するために使用するビューは、他のフォルダーには適用されません。

c.. フォルダーを開くと、最後に表示したときに使用したビューで開きます。

各フォルダーの表示設定を記憶するチェックボックスをオフにすると、次のようになります。

a.. Windows エクスプローラーを起動すると、最初に表示するフォルダーがフォルダーの保存されたビューに表示されます。Windows エクスプローラーは、そのビューを一時メモリに保持し、手動でビューを変更しない限り、Windows エクスプローラーが開いている間は、アクセスするすべてのフォルダーにそのビューを適用します。

b.. 他のフォルダーを参照すると (最初のフォルダーを開いた後)、各フォルダーの保存されたビューは無視され、Windows エクスプローラーを終了すると、複数のフォルダーを表示するために使用していたフォルダー ビューが一時メモリから削除されます。

c.. 次に Windows エクスプローラーを開いたときにも、最初に開いたフォルダーの保存されたビューによって、複数のフォルダーの表示方法が決まります。

すべてのフォルダを同じビューに設定する

ユーザーによっては、Windows エクスプローラーのすべてのフォルダーを同じビューに設定したい場合があります。Windows 2000 Professional の既定の設定では、フォルダーのビューに加えられた変更はフォルダーを閉じると自動的に保存され、他のフォルダーには適用されません。ただし、次の手順で説明するように、フォルダー オプション コマンドを使用して、すべてのフォルダーを同じビューに設定できます。

すべてのフォルダを同じビューに設定するには

1.. 「マイ コンピューター」または Windows エクスプローラーで、表示を好みに応じて設定します。

2. [ツール] メニューで [フォルダー オプション] をクリックします。

3. [フォルダー オプション] ダイアログ ボックスで、[表示] タブをクリックします。

4.. [フォルダー ビュー] で、[現在のフォルダーにいいね] をクリックします。

重要: [フォルダ オプション] ダイアログ ボックスの [表示] タブにある [各フォルダの表示設定を記憶する] チェック ボックス (図 9.3 を参照) は、個々のフォルダの表示設定の適用方法と保存方法に影響します。このチェック ボックスをオフにした場合の影響の詳細については、この章の前半にある「保存されたビューとフォルダの参照について」を参照してください。

Windows 2000 リソース キット

一部の参照は古いバージョンの Windows に適用され、移動されています。

ファイルフォルダ内では、すべてに適用する必要があります。各タイプのオブジェクト(ファイルフォルダ、コントロールパネル、マイコンピュータなど)のclsidですべてに適用すると、設定が作成/更新されます。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Defaults

{F3364BA0-65B9-11CE-A9BA-00AA004AE837}通常のフォルダーで、他の番号はそれが何であれ (My Comp、Control Panel など - My Docs は通常のフォルダーであることに注意してください) です。それらは、その種類のオブジェクトですべてに適用した場合にのみ表示されます。

デフォルトの設定も増加し、

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Settings=

重要なのは、物事を行う順番です。全体的なデフォルト設定は最後に行う必要があります。これは、私が質問した人にアドバイスした方法です。

選択した個別のフォルダー ビュー設定を Windows に強制的に保持させる方法を教えてください。フォルダー オプションでボックスを何度もチェックして記憶させましたが、この問題については記憶されません。具体的には、マイ ピクチャとコントロール パネル ダイアログで常にサムネイル ビューを表示したいのですが、開くたびに手動でそのビューを設定する必要があります。

コントロール パネルを希望どおりに設定し、ツール - 表示 - すべてのフォルダーに適用を選択します。これにより、グローバル デフォルトとコントロール パネル タイプのオブジェクト デフォルトが設定されます (ただし、システム デフォルトは同じままです。変更できませんが、他のすべてのデフォルト/設定がそれを上書きします)。次に、通常のフォルダー (この機能では My Pics がこれに該当します) に移動し、CP 以外のすべてのフォルダーを希望どおりに設定します。次に、ツール - 表示 - すべてのフォルダーに適用を選択します。これにより、グローバル デフォルトとファイル フォルダー タイプのオブジェクト デフォルトが設定されます (CP のデフォルト設定がグローバルを上書きします)。次に、My Pics を希望どおりに設定し、チェックボックスで保存するので、他に何もする必要はありません。フォルダ設定を記憶するそしてそこに辿り着いた道. 例えば

Desktop\My Comp\C:\Documents & Settings\user name\My Docs\My Pics

異なる設定です

Desktop\My Comp\My Docs\My Pics

類似の設定を検索することもありますが、使用されるパスがあまりにも異なる場合、類似の名前のフォルダーの設定が見つからないことになります。

「すべてに適用」を実行しない限り、システムのデフォルト (および既に開いている個々のフォルダーの保存された設定) が唯一の設定になります (つまり、グローバルまたはタイプのデフォルトはありません)。

さらに、ファイルフォルダ内でコントロールキーを押しながら閉じるをクリックすると、更新されます。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer

シェルステート=

これは主に無関係な設定ですが、グローバルソートを保持し、他のすべてが上書きします。ただし、ファイルを開くダイアログボックスはこの設定のみを使用するため、基本的にはファイルを開くダイアログのソートにのみ影響します。ただし、以前の Windows バージョンの設定がここに書き込まれ、他の設定が保存されないことがあるようです。

typedef struct {
BOOL fShowAllObjects:1;
BOOL fShowExtensions:1;
BOOL fNoConfirmRecycle:1;
BOOL fShowSysFiles:1;
BOOL fShowCompColor:1;
BOOL fDoubleClickInWebView:1;
BOOL fDesktopHTML:1;
BOOL fWin95Classic:1;
BOOL fDontPrettyPath:1;
BOOL fShowAttribCol:1;
BOOL fMapNetDrvBtn:1;
BOOL fShowInfoTip:1;
BOOL fHideIcons:1;
BOOL fWebView:1;
BOOL fFilter:1;
BOOL fShowSuperHidden:1;
BOOL fNoNetCrawling:1;
DWORD dwWin95Unused;
UINT uWin95Unused;
LONG lParamSort;
int iSortDirection;
UINT version;
UINT uNotUsed;
BOOL fSepProcess:1;
BOOL fStartPanelOn:1;
BOOL fShowStartPage:1;
UINT fSpareFlags:13;
} SHELLSTATE, *LPSHSHELLSTATE;

関連情報