對註冊表進行操作後,必須調用SHChangeNotify函數(該API函數的單元檔案是ShlObj),它能通知Windows系統更新
相應的設定。
WINSHELLAPI void WINAPI SHChangeNotify(
LONG wEventID, //指定事件類型
UINT uFlags, //確定dwItem1和dwItem2作的標誌
LPCVOID dwItem1,
LPCVOID dwItem2
);
1.wEventId的取值如下:
SHCNE_ASSOCCHANGED:修改檔案關聯
SHCNE_ATTRIBUTES:改變檔案屬性
SHCNE_CREATE:建立新檔案
SHCNE_DELETE:刪除檔案
SHCNE_DRIVEADD:增加網路磁碟機
SHCNE_DRIVEADDGUI:通過GUI增加網路磁碟機
SHCNE_DRIVEREMOVED:卸載網路磁碟機
SHCNE_INTERRUPT:將事件作為系統中斷執行。
SHCNE_MEDIAINSERTED:安裝可卸載媒體,如CD-ROM
SHCNE_MEDIAREMOVED:卸載可卸載媒體,如CD-ROM
SHCNE_MKDIR:建立目錄
SHCNE_NETSHARE:網路上共用資源
SHCNE_NETUNSHARE:網路上停止分享資源
SHCNE_RENAMEFOLDER:檔案夾改名
SHCNE_RENAMEITEM:檔案夾中某項改名
SHCNE_RMDIR:刪除目錄
SHCNE_SERVERDISCONNECT:與網路伺服器取消連結
SHCNE_UPDATEDIR:更新目錄資訊
SHCNE_UPDATEIMAGE:改變系統全域映像列表中的一個映像
SHCNE_UPDATEITEM:改變印表機或檔案的列表
3.該函數沒有傳回值。
2.uFlags的取值如下:
SHCNF_DWORD: dwItem1和dwItem2是DWORD類型值。
SHCNF_FLUSH:清空系統事件緩衝區,系統處理完給定的事件後才返回
SHCNF_FLUSHNOWAIT:清空系統事件緩衝區,立即返回
SHCNF_IDLIST:dwItem1和dwItem2為項目識別碼清單的地址
SHCNF_PATH:dwItem1和dwItem2為路徑地址
SHCNF_PRINTER:dwItem1和dwItem2為友好印表機名