Подтвердить что ты не робот

Как программно обновить рабочий стол Windows (т.е. F5) с С#?

Да, я знаю, что это похоже на немой вопрос, его просто одноразовый хак, мне нужно обернуть несколько мирскую задачу, чтобы я мог перейти к чему-то более интересному.

EDIT: Может быть, больше информации поможет: я пытаюсь удалить некоторые ярлыки с рабочего стола, и мне нужно, чтобы пользователь сразу удалил его (чтобы им не нужно было нажимать F5).

4b9b3361

Ответ 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.