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