C#实现刷新桌面的方法

2019-12-26 13:25:54于丽

易采站长站为您分析C#实现刷新桌面的方法,涉及C#基于shell32.dll动态链接库实现系统桌面刷新的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了C#实现刷新桌面的方法。。具体如下:

 

 
  1. using System;  using System.Collections.Generic; 
  2. using System.Linq;  using System.Text; 
  3. using System.Runtime.InteropServices;  namespace FileEncryptProject.Algorithm 
  4. {  public class DesktopRefurbish 
  5. {  /// <summary> 
  6. /// 桌面刷新  /// </summary> 
  7. [DllImport("shell32.dll")]  public static extern void SHChangeNotify(HChangeNotifyEventID wEventId, HChangeNotifyFlags uFlags, IntPtr dwItem1, IntPtr dwItem2); 
  8. public static void DeskRef()  { 
  9. SHChangeNotify(HChangeNotifyEventID.SHCNE_ASSOCCHANGED, HChangeNotifyFlags.SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero);  } 
  10. }  #region public enum HChangeNotifyFlags 
  11. [Flags]  public enum HChangeNotifyFlags 
  12. {  SHCNF_DWORD = 0x0003, 
  13. SHCNF_IDLIST = 0x0000,  SHCNF_PATHA = 0x0001, 
  14. SHCNF_PATHW = 0x0005,  SHCNF_PRINTERA = 0x0002, 
  15. SHCNF_PRINTERW = 0x0006,  SHCNF_FLUSH = 0x1000, 
  16. SHCNF_FLUSHNOWAIT = 0x2000  } 
  17. #endregion//enum HChangeNotifyFlags  #region enum HChangeNotifyEventID 
  18. [Flags]  public enum HChangeNotifyEventID 
  19. {  SHCNE_ALLEVENTS = 0x7FFFFFFF, 
  20. SHCNE_ASSOCCHANGED = 0x08000000,  SHCNE_ATTRIBUTES = 0x00000800, 
  21. SHCNE_CREATE = 0x00000002,  SHCNE_DELETE = 0x00000004, 
  22. SHCNE_DRIVEADD = 0x00000100,  SHCNE_DRIVEADDGUI = 0x00010000, 
  23. SHCNE_DRIVEREMOVED = 0x00000080,  SHCNE_EXTENDED_EVENT = 0x04000000, 
  24. SHCNE_FREESPACE = 0x00040000,  SHCNE_MEDIAINSERTED = 0x00000020, 
  25. SHCNE_MEDIAREMOVED = 0x00000040,  SHCNE_MKDIR = 0x00000008,