RT。我要选中不显示隐藏文件一选项
我修改了 Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Nohidden 和
Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Showall 这两个的值后,再看文件夹选项里面选择的确实是
‘不显示隐藏文件’,并且我在程序里发了这个消息
Sendmessage(HWND_BROADCAST,WM_SETTINGCHANGE, 0 ,0); 结果不起任何作用!!
我修改了 Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Nohidden 和
Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Showall 这两个的值后,再看文件夹选项里面选择的确实是
‘不显示隐藏文件’,并且我在程序里发了这个消息
Sendmessage(HWND_BROADCAST,WM_SETTINGCHANGE, 0 ,0); 结果不起任何作用!!
在文件夹选项对话框操作一下,同时用工具监视修改了哪些注册表项
--------------------------------------------------------------
发现系统修改的只是这个键值HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden 也在网上找了下资料,大多数人都说通过修改
Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Showall
这两个的键值可以,其实还要修改
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Hidden
这个值,改为2表示不显示隐藏文件,1表示显示所有文件,
先修改这个地方后,再修改Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Showall 这两个地方的值全为0
接下来再刷新EXPLORER,不管用户怎么选择,都不无显示隐藏文件!!!
以下是刷新EXPLORER的代码,网上找的:function EnumWindowsProc(AHWnd: HWND;LPARAM: lParam): boolean; stdcall;
var
WClassName : array[0..254] of char;
begin
Result := True;
GetClassName(AHWnd, @WClassName, 254);
if SameText(WClassName,'CabinetWClass') then
begin
PostMessage(AHWnd,$111, 28931, 0);
end;
end;
Procedure UpdateExplorer;
var
AHandle : THandle;
begin
EnumWindows(@EnumWindowsProc, 0);
AHandle := FindWindow('Progman',Nil);
if AHandle <> 0 then PostMessage(AHandle,$111, 28931, 0);
end; //刷新窗口代码 : 也是网上的
const
FCIDM_SHVIEWSHELL = $7000;
FCIDM_MENU_VIEW_REFRESH = FCIDM_SHVIEWSHELL + $0103;
//向系统广播消息,刷新所有窗口
PostMessage(HWND_BROADCAST, WM_COMMAND, FCIDM_MENU_VIEW_REFRESH, 0); 谢谢各位。
SHChangeNotify
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NiL, NiL);