DSO DSO - 2 months ago 27x
C# Question

How to refresh the windows desktop programmatically (i.e. F5) from C#?

Yeah, I know this seems like a dumb question, its just a one-off hack I need to wrap up a somewhat mundane task so I can move on to something more interesting.

Maybe more info would help: I'm trying to remove some shortcuts from the desktop and I need the user to see it removed right away (so they don't have to press F5).


You can use the SHChangeNotify API.

private static extern int SHChangeNotify(int eventId, int flags, IntPtr item1, IntPtr item2);

and then call it this way

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