Как программно обновить рабочий стол Windows (т.е. F5) с С#?
Да, я знаю, что это похоже на немой вопрос, его просто одноразовый хак, мне нужно обернуть несколько мирскую задачу, чтобы я мог перейти к чему-то более интересному.
EDIT:
Может быть, больше информации поможет: я пытаюсь удалить некоторые ярлыки с рабочего стола, и мне нужно, чтобы пользователь сразу удалил его (чтобы им не нужно было нажимать F5).
Ответы
Ответ 1
Вы можете использовать API SHChangeNotify.
[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);
Ответ 2
Я думаю, что вы ищете IActiveDesktop:: ApplyChanges. Вам нужно будет получить доступ к этому через COM-интерфейс, который должен быть довольно простым с помощью всей документации Microsoft предоставляет на COM Interop.