Windows 7 のコンテキスト メニューに隠しフォルダーの表示/非表示を追加する

Windows 7 のコンテキスト メニューに隠しフォルダーの表示/非表示を追加する

最近、他の OS (Ubuntu など) と比べて、Windows で「隠しファイルを表示する」をオンにするのが非常に難しいことに悩まされています。Windows 7 のコンテキスト メニューに「隠しファイルの表示/非表示を切り替える」オプションを追加する方法を探していましたが、サード パーティのオプションしか見つかりませんでした。ただし、不要な機能のためだけにサード パーティのオプションを使用するよりも、自分で行う方がよいと思います。

コンテキスト メニューに他の項目を追加するにはこれが必要になるため (他のチュートリアルで確認したところによると)、レジストリ エディターでこれを行う方法があるはずです。ただし、まだこれを行う方法は見つかっていません。また、レジストリ エントリから呼び出される何らかのスクリプトを使用する必要があると考えています。

これについて経験のある方はいらっしゃいますか? 隠しファイルを表示したり非表示にしたりすることが頻繁にあるので、ワークフローが大幅に改善されると思います。 ありがとうございます!

答え1

次の VBScript でこの作業が完了するはずです。

option explicit
On Error GoTo 0
Dim sResult: sResult = Wscript.ScriptName                            ''' debugging

Const HKEY_CURRENT_USER = &H80000001

Dim strComputer, strKeyPath, strValName, dwValue, arrValues, objReg, WshShell
arrValues = Array (" unknown", " show hidden files", " hide hidden files" )
strComputer = "."

Set objReg=GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
strValName = "hidden"

objReg.GetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValName, dwValue

If Not (dwValue = 1 OR dwValue = 2) Then dwValue = 0

sResult = sResult & vbNewLine & CStr( dwValue) & arrValues( dwValue) ''' debugging

dwValue = (dwValue Mod 2) + 1                           ' switch value 1 <--> 2

sResult = sResult & " -> " & CStr( dwValue) & arrValues( dwValue)    ''' debugging

objReg.SetDWORDValue HKEY_CURRENT_USER, strKeyPath, strValName, dwValue

set WshShell = WScript.CreateObject("WScript.Shell")
    WScript.Sleep 30
    WshShell.SendKeys "{F5}"              ' refresh

Wscript.Echo sResult                                                 ''' debugging
Wscript.Quit

次のレジストリ構成ファイルは、任意のフォルダの右クリックコンテキストメニューに上記のスクリプト機能を追加します。背景ファイルエクスプローラー(およびデスクトップの背景にも)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\background\shell\Toggle Hidden Files]

[HKEY_CLASSES_ROOT\Directory\background\shell\Toggle Hidden Files\command]
@="C:\\Windows\\System32\\wscript.exe  \"D:\\VB_scripts\\SU\\1088687.vbs\""

上記の.regファイルで、状況に合わせて次の項目をカスタマイズしてください。

  • メニュー項目名Toggle Hidden Filesそして
  • スクリプトへのフルパスD:\\VB_scripts\\SU\\1088687.vbs(二重のバックスラッシュに注意してください)。

正確性を確認するには:

==> reg query "HKCR\Directory\background\shell\Toggle Hidden Files" /s

HKEY_CLASSES_ROOT\Directory\background\shell\Toggle Hidden Files\command
    (Default)    REG_SZ    C:\Windows\System32\wscript.exe  "D:\VB_scripts\SU\1088687.vbs"

==>

さらに、上記の VBscript に含まれるすべての行を削除することもできますsResult。そうすると、スクリプトは黙ってジョブを実行します。

答え2

探しているレジストリ キーは次の場所にあります:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced] "隠し"=dword:0000000x

隠しファイルとフォルダを表示するには x を 1 に設定し、非表示にするには x を 2 に設定します。

そこで、作業に役立つ 2 つのファイルを作成します。これらのファイルはどこかに保存する必要がありますが、私の例では Documents フォルダーを使用します。

隠しファイルとフォルダー - show.reg:

Windows Registry Editor Version 5.00

; Show hidden files & folders

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"Hidden"=dword:00000001

隠しファイルとフォルダー - hide.reg:

Windows Registry Editor Version 5.00

; Hide hidden files & folders

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"Hidden"=dword:00000002

これらのファイルをクリックして動作をテストできます。変更が有効になっていることを確認するには、更新 ([F5]) する必要があります。

次に、右クリック オプションを追加するためにレジストリを変更する必要があります。ここでは、フォルダーにのみ右クリック オプションを追加するものとします。必要な変更を行う .reg ファイルは次のとおりです。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\Folder\shell]

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\Hide]
@="Hidden Files - &Hide"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\Hide\command]
@="reg import \"C:\\Users\\Jim\\Documents\\Hidden Files & Folders - hide.reg\""

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\Show]
@="Hidden Files - &Show"

[HKEY_CURRENT_USER\Software\Classes\Folder\shell\Show\command]
@="reg import \"C:\\Users\\Jim\\Documents\\Hidden Files & Folders - show.reg\""

これで、任意のフォルダーを右クリックして、[非表示] または [表示] オプションを選択できます。変更を確認するには、[表示] -> [更新] (または [F5] キーを押す) を実行する必要があります。

これは、私のドキュメント フォルダ。コンピュータに合わせて適切な変更を行う必要があります。

これをより汎用的にして %USERPROFILE% 変数を使用することもできますが、拡張可能な文字列を使用する必要があり、.reg ファイルの読み取りと変更が難しくなるため、上記の手順では省略しました。また、ファイルを実際にどこに保存したいのかわからないため、今のところは単純にしています。

関連情報