7

Windows APIには、Windowsエクスプローラーの[隠しファイル、フォルダー、およびドライブを表示する]オプションを切り替える機能があります([ツール]>>[フォルダーオプション...]>>[表示]タブ)。

関連するレジストリキーを知っていますが、それを変更してもすぐには効果がありません。重要なのは:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Hidden

C#からこれを実行しようとしていますが、質問は言語固有ではありません。

4

4 に答える 4

4

このスレッドの OP が提案するオプションを試すことができます。

また

 SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);

また

 RefreshPolicyEx(False, RP_FORCE);

また

 SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, integer(pchar('Policy')), SMTO_NORMAL or SMTO_ABORTIFHUNG, 5000, c1);

これらは .NET C# API には含まれていないため、使用する必要があります。DllImport

編集:フォーマット

于 2010-03-25T10:19:28.003 に答える
2

元の質問に追加したコメントに加えて、たとえば、ポップしようとしている OpenFileDialog にこれらのファイルが表示されるようにする場合は、実行しないでください。

その場合、P/ Invoking GetOpenFileNameを使用し、 OpenFileName構造体のフラグに適切なオプション (OFN_FORCESHOWHIDDEN (関連する件名についてはenumを参照) を設定することをお勧めします。

そうすれば、適切なタイミングでアプリケーションにのみ影響を与えることができます

于 2010-03-25T11:02:55.933 に答える
1

SHGetSetSettings

SHELLSTATE構造 fShowAllObjectsBOOLTRUEを指定すると、隠しファイルとフォルダーを含むすべてのオブジェクトが表示されます。隠しファイルと隠しフォルダを非表示にするにはFALSE。

fShowSysFiles BOOLシステムファイルを表示する場合はTRUE、非表示にする場合はFALSE。

Spy ++は、WM_SETTINGCHANGEがエクスプローラーウィンドウに送信されると言います。

于 2010-04-02T20:43:56.547 に答える
1

API はわかりませんが、レジストリ キーはHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden. 実験から、値 1 は表示を意味し、値 2 は非表示を意味するようです。

于 2010-03-25T10:19:54.610 に答える