API to toggle "Show hidden files, folders and drives"
Is there a function in Windows API to toggle the "Show hidden files, folders and drives" option in Windows Explorer (Tools >> Folder Options... >> View tab).
I know of a related registry key, but changing that would not have immediate effect. The key is: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Expl开发者_JS百科orer/Advanced/Hidden
Trying to do this from C#, but the question is not language-specific.
You could try the options the OP in this thread suggests, that is:
Either
SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0);
or
RefreshPolicyEx(False, RP_FORCE);
or
SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, integer(pchar('Policy')), SMTO_NORMAL or SMTO_ABORTIFHUNG, 5000, c1);
These are not in the .NET C# API, so you'll have to use DllImport
Edit: formatting
In addition to the comment I've added to the original question - if you're doing this so that, for instance, the OpenFileDialog you're about to pop open shows these files - don't do it.
In that case, you're better P/Invoking GetOpenFileName, and setting the appropriate option (OFN_FORCESHOWHIDDEN (see enum for a related subject) in the flags of the OpenFileName structure.
That way you're only affecting your application, at the appropriate time
I know of no API, but the registry key is HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden
. From experimentation, it seems a value of 1 means show and a value of 2 means hide.
SHGetSetSettings
SHELLSTATE Structure fShowAllObjects BOOL TRUE to show all objects, including hidden files and folders. FALSE to hide hidden files and folders.
fShowSysFiles BOOL TRUE to show system files, FALSE to hide them.
Spy++ says a WM_SETTINGCHANGE is sent to the explorer windows.
精彩评论