全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2288
推到 Plurk!
推到 Facebook!

請問更改注冊表顯示隱藏文件和文件夾后如果不用刷新就能顯示?

答題得分者是:RootKit
bodysonic3
一般會員


發表:3
回覆:3
積分:1
註冊:2005-02-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-12-23 17:39:31 IP:120.84.xxx.xxx 訂閱
請問更改注冊表顯示隱藏文件和文件夾后如果不用刷新就能顯示?
代碼如下:
procedure Hide(HideV:integer;SuperHiddenint:Integer);
var
HideName:string;
hKeyx:HKEY;
R : Cardinal;
c1 : THandle;
begin
HideName:='Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced';
try
if RegOpenKeyEx(HKEY_CURRENT_USER,Pchar(HideName),0,KEY_WRITE , hKeyx ) = ERROR_SUCCESS then
begin
if RegSetValueEx(hKeyx,'Hidden', 0,REG_DWORD, @HideV, sizeof(HideV))=ERROR_SUCCESS then
if RegSetValueEx(hKeyx,'ShowSuperHidden', 0,REG_DWORD, @HideV, sizeof(SuperHiddenint))=ERROR_SUCCESS then
begin
// SendMessageTimeout(HWND_BROADCAST,WM_SETTINGCHANGE, 0 ,Integer(PChar('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced')),SMTO_NORMAL,1000, R);
//c1:=FindWindowEx()
// SendMessageTimeOut(HWND_BROADCAST,WM_SETTINGCHANGE,0,Integer(PChar('Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced')),SMTO_ABORTIFHUNG,10,R);
// SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
// RegSetValueEx(hKeyx,'Hidden', 0,REG_DWORD, @HideV, sizeof(HideV));
// SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
// SHChangeNotify(SHCNE_ALLEVENTS SHCNE_DISKEVENTS, SHCNF_IDLIST, nil,nil);
// SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_DWORD SHCNF_IDLIST SHCNF_FLUSH, nil,nil);
//SHChangeNotify(SHCNE_DISKEVENTS,SHCNF_DWORD SHCNF_IDLIST SHCNF_FLUSH, nil, nil); 這些都試過了都沒有用。請指教。
end;
end;
finally
RegCloseKey(hKeyx);
end;
end;
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-12-23 20:10:48 IP:220.141.xxx.xxx 訂閱
我沒有試過,您試試吧!
SendMessage(Handle, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, Integer(PChar('WindowMetrics')));
------
努力會更接近成功
bodysonic3
一般會員


發表:3
回覆:3
積分:1
註冊:2005-02-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-12-29 11:47:23 IP:125.89.xxx.xxx 訂閱
SendMessage(Handle, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, Integer(PChar('WindowMetrics')));
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETNONCLIENTMETRICS, Integer(PChar('WindowMetrics')));
这两个都试过了不行。还是要刷新才能显示隐藏文件
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-12-29 23:03:23 IP:122.126.xxx.xxx 訂閱
有些註冊表修改後要生效,需要登出或重新開機。
或可嘗試 將 Explorer.exe Terminate 後自動生成,或許Maybe 有點作用。
bodysonic3
一般會員


發表:3
回覆:3
積分:1
註冊:2005-02-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-12-30 10:56:25 IP:125.89.xxx.xxx 訂閱
那用Windows自帶的選擇后就可以立刻看到隱藏文件和目錄。是不是不用重新啟動都有辦法。
RootKit
資深會員


發表:16
回覆:358
積分:419
註冊:2008-01-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-12-30 14:48:32 IP:61.222.xxx.xxx 訂閱
臨時寫的,自行添加到最後一行。即可

[code delphi]
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;

[/code]
kukuasir
一般會員


發表:0
回覆:1
積分:0
註冊:2004-12-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-01-03 00:38:21 IP:221.131.xxx.xxx 訂閱
以下代码为刷新所有窗口的代码,可以44,作用和按f5一样,应该可以满足你的要求
[code delphi]
const
FCIDM_SHVIEWSHELL = $7000;
FCIDM_MENU_VIEW_REFRESH = FCIDM_SHVIEWSHELL $0103;
//向系统广播消息,刷新所有窗口
PostMessage(HWND_BROADCAST, WM_COMMAND, FCIDM_MENU_VIEW_REFRESH, 0);
[/code]
編輯記錄
kukuasir 重新編輯於 2009-01-03 00:40:23, 註解 無‧
系統時間:2024-04-26 19:52:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!