DSO DSO - 1 year ago 146
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).

Answer Source

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);
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download