請問更改注冊表顯示隱藏文件和文件夾后如果不用刷新就能顯示? |
答題得分者是:RootKit
|
bodysonic3
一般會員 發表:3 回覆:3 積分:1 註冊:2005-02-09 發送簡訊給我 |
請問更改注冊表顯示隱藏文件和文件夾后如果不用刷新就能顯示?
代碼如下: 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 發送簡訊給我 |
|
bodysonic3
一般會員 發表:3 回覆:3 積分:1 註冊:2005-02-09 發送簡訊給我 |
|
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
|
bodysonic3
一般會員 發表:3 回覆:3 積分:1 註冊:2005-02-09 發送簡訊給我 |
|
RootKit
資深會員 發表:16 回覆:358 積分:419 註冊:2008-01-02 發送簡訊給我 |
臨時寫的,自行添加到最後一行。即可
[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 發送簡訊給我 |
以下代码为刷新所有窗口的代码,可以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, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |