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

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

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

您可以使用SHChangeNotify API。

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

然后用这种方式调用它

 SHChangeNotify(0x8000000, 0x1000, IntPtr.Zero, IntPtr.Zero); 

我想你正在寻找IActiveDesktop :: ApplyChanges 。 您需要通过COM接口访问它,使用Microsoft Interop上提供的所有文档应该相当容易。