如何从C#以编程方式(即F5)刷新Windows桌面?

DSO*_*DSO 12 .net c#

是的,我知道这似乎是一个愚蠢的问题,它只是一次性的黑客,我需要完成一个有点平凡的任务,所以我可以继续前进更有趣的事情.

编辑:也许更多的信息会有所帮助:我正在尝试从桌面删除一些快捷方式,我需要用户立即看到它被删除(所以他们不必按F5).

Tom*_*son 37

您可以使用SHChangeNotify API.

[System.Runtime.InteropServices.DllImport("Shell32.dll")]
private static extern int SHChangeNotify(int eventId, int flags, IntPtr item1, IntPtr item2);
Run Code Online (Sandbox Code Playgroud)

然后以这种方式调用它

SHChangeNotify(0x8000000, 0x1000, IntPtr.Zero, IntPtr.Zero);
Run Code Online (Sandbox Code Playgroud)

  • 知道是什么原因导致必须将`SHCNE_ASSOCCHANGED(0x8000000)`作为`eventId`传递? (2认同)