Skip to content
This repository has been archived by the owner on Nov 18, 2023. It is now read-only.

About advanced settings

creeper-0910 edited this page May 24, 2022 · 2 revisions

このページに記載された設定は、特定のユースケースを想定しています。
その機能については、この記事で説明していますが、必要でない限り使用はお控えください。

コンソールを有効にする

ExplorerPatcherのデバッグ情報が表示されるコンソールを有効にします。以下はコンソールの表示例です:

image

これは、ExplorerPatcherをデバッグするときに利用できます。しかし、開発者で無い限りこの機能は無効にしておくべきです。

また、コンソールウィンドウを閉じるとExplorerが再起動しますのでご注意ください。
コンソールを閉じるには、高度な設定から「コンソールを有効にする」を無効にしてから閉じてください。

メモリリークをダンプする

ExplorerPatcherに現在割り当てられているメモリブロックの情報をコンソールに表示します。
「コンソールを有効にする」を有効にしている場合のみ確認が可能です。

また、デバッグビルドの場合のみ、この機能が利用できます。
GitHubから配布されているようなExplorerPatcherのリリースビルドでこのオプションを使用しても何も表示されず、設定で有効にすることはできません。

出力は以下のようになります:

[Memcheck] Dumping memory leaks...
Detected memory leaks!
Dumping objects ->
C:\Users\root\Documents\Visual Studio 2019\Projects\ExplorerPatcher\ExplorerPatcher\SettingsMonitor.c(9) : {354} normal block at 0x000000001234AF50, 96 bytes long.
 Data: <        0       > 80 00 00 00 00 00 00 00 30 03 00 00 00 00 00 00
C:\Users\root\Documents\Visual Studio 2019\Projects\ExplorerPatcher\ExplorerPatcher\dllmain.c(5512) : {64} normal block at 0x0000000000679F50, 24 bytes long.
 Data: < `h             > 10 60 68 00 00 00 00 00 0C 00 00 00 00 00 00 00
C:\Users\root\Documents\Visual Studio 2019\Projects\ExplorerPatcher\ExplorerPatcher\dllmain.c(5375) : {63} normal block at 0x0000000000686010, 6720 bytes long.
 Data: <                > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Object dump complete.
[Memcheck] Memory leak dump complete.
[Memcheck] Objects in use:
GDI     GDIp    USER    USERp
281     295     157     180

これは、アプリケーションがメモリをリークしているかどうかを判断するのに非常に有効です。基本的に、表示されるすべてのエントリは、管理された既知のソースからのものであるべきです。
特に開発者にとっては重要でしょう。

タスクバーのダブルクリックで自動非表示

このオプションは意図したとおりに動作していないため、将来的に削除される可能性があります。
タスクバーをダブルクリックすると、タスクバーの自動非表示が切り替わるようにするものです。現時点(v41.0)では、以下のように動作しています。:

  • Windows 10 : プライマリ・タスクバー上で、"タスクバーをロック "オプションが設定されているときのみ動作します。タスクバーのロックが解除されているとき、およびセカンダリー・タスクバーでは動作しません。
  • Windows 11 : プライマリおよびセカンダリの両方のタスクバーで動作しています。

Windows 10で正常に動作しないのは、古いタスクバーがユーザーのクリックに関して実際に何かをすることができるからです。(たとえば、ユーザーがボタンを押すと内部のステートマシンが新しい状態に遷移し、最終的にドラッグされることを期待します)
この動作をフックして禁止するとビルトインの機能が失われますし、これを禁止しなければタスクバーはその後のクリック(ダブルクリックになる)を他の面にリダイレクトしてしまうため、フックはそれを捕捉してユーザーがダブルクリックしたかどうかを把握することができないのです。
ダブルクリックを確実に把握する唯一の方法は、グローバルなマウスフックをインストールすることですが、私はこの機能のためだけにこれを行うのはあまり気が進みません。
グローバルマウスフックの代替案として、AutoHotkeyスクリプトがあります。詳しくは このスレッドで、この機能の実装について説明されています。

Windowsのビルド情報をデスクトップに表示

Insider Previewで表示されるのと同様に、デスクトップに現在のWindowsビルドを表示します:

image

クラシックテーマを使用した正しいレンダリングのための高度な緩和策を有効にする

テーマが無効な場合の Windows UI の問題を緩和する ExplorerPatcher の補助フックとコードパスを有効にします。
これは主に、クラシックテーマを有効にするために使用している人が使用します。これについての詳細はここここにあります。

エクスプローラのビューでSysListView32を有効にする

ファイルエクスプローラのフォルダ表示に使用されていたレガシーコントロールを有効にします。
この機能は非推奨ですが、特にクラシックテーマとの統合がよく、余白が少ないため、これを好む人もいます。
しかし、ダークテーマなどには、こちらのような既知の問題があります。

タスクバーのコンテキストメニューからプログラムの設定項目("プロパティ")を非表示にする

デフォルトでは、プログラムの設定インターフェースにアクセスするには、タスクバーを右クリックし、コンテキストメニューから「プロパティ」を選択します。
しかし、人によってはメニューの並びが変わることで操作ミスなどが発生する可能性があるため、高度な設定として「プロパティ」メニューを非表示にするために提供されています。
このオプションを有効にすると、設定インターフェースにアクセスするためのグラフィカルな方法がなくなる可能性があるので注意してください。(Win+Xメニューに同様の項目を表示させるオプションがあります。詳細は「その他」のセクションをご覧ください)
このような状況に直面した場合は、スタートボタンをクリックし、「run」(または[Win]+[R])と入力して、次のコマンドを入力してください。rundll32 C:\Windows\dxgi.dll,ZZGUI
これで設定画面が開くはずです。

シンボルのダウンロードを有効化する

シンボルデータがローカルに存在しない場合や、アプリケーション自体に組み込まれていない場合に、アプリケーションが自動的にMicrosoftからシンボルデータをダウンロードするのを防ぐために使用できます。
これは通常、新しいWindows Insiderビルドや、新しいWindows安定版ビルドがリリースされた直後のケースです。シンボルに関するより詳しい情報はこちらをご覧ください。

エクスプローラーのメインプロセスからスタートメニューをフックしない(永久に無効)

これは何の効果もないので、無効のままにしておいてください。

ログオン時の補助遅延

ログオン時に ShellDesktopSwitchEvent スイッチイベントがシグナルされるまでのカスタムディレイを設定することができます。
このイベントがシグナルされると、 winlogon はログイン画面 (ユーザーアカウント名と "Welcome" というテキストが表示される画面) を隠し、デスクトップを表示することができるようになります。
デフォルトでは、アプリケーションは自動的に最適な遅延時間を決定しますが、ここでオーバーライドすることができます。

追伸:レジストリ項目 UndockingDisabledexplorer の代わりに使用するとログオン時に遅延が発生するのは、Windows 11 でクラシックタスクバーを使用しているときにそのイベントを通知するものがないためです。