2012年4月13日金曜日

ナビゲーションウィンドウの項目を非表示にする 3 (CallForAttributesで非表示)

Windows7のエクスプローラのナビゲーションウィンドウの各項目を非表示にする3つめの方法です。

動作の確認はしていますが「こうやったら、こうなった」根拠のない方法のため、不具合が潜んでいる可能性もあります。

CallForAttributes で非表示

と同様に Explorer から CallForAttributes(DWORD値) にもアクセスがあるのですが、そのデータを0xffffffffにするとナビゲーションペインの項目を非表示にできます。

ただし、コンピューターとホームグループが消えません。

CallForAttributes で非表示

Windows Registry Editor Version 5.00

; Library
[HKEY_CURRENT_USER\Software\Classes\CLSID\{031E4825-7B94-4dc3-B131-E946B44C8DD5}\ShellFolder]
"CallForAttributes"=dword:ffffffff

; Favorites
[HKEY_CURRENT_USER\Software\Classes\CLSID\{323CA680-C24D-4099-B94D-446DD2D7249E}\ShellFolder]
"CallForAttributes"=dword:ffffffff

; Computers and Devices (NetWork)
[HKEY_CURRENT_USER\Software\Classes\CLSID\{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}\ShellFolder]
"CallForAttributes"=dword:ffffffff

; Computer
;[HKEY_CURRENT_USER\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\ShellFolder]
;"CallForAttributes"=dword:ffffffff

; Other Users Folder (HomeGroup)
;[HKEY_CURRENT_USER\Software\Classes\CLSID\{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}\ShellFolder]
;"CallForAttributes"=dword:ffffffff

CallForAttributes については、Attributes の意味が分からないので想像の範疇を出ませんが、Attributes と論理演算をしているのではないかと思っています。

Attributes の方法と比べてメリットもあります

Explorer の再起動が不要で即時適応されるので、プログラムやバッチ、シェルメニューに組み込むこともできます。(なぜか少しインターバルがあります)

デスクトップのアイコンに影響がない。Attributes では非表示になります。

System.IsPinnedToNameSpaceTree の方法も同じ性質ですので、組み合わせて残るホームグループは参加を終了することで、デスクトップのアイコンに影響を与えずに、すべてのナビゲーションペインの項目に対応することができます。

ナビゲーションウィンドウの項目を非表示にする 3 つの方法