Как обновить значок после изменения ассоциации файлов в XP? - PullRequest
0 голосов
/ 28 февраля 2012

Я попытался изменить сопоставление файлов .htm в XP, и вот как я это сделал:

  1. Измените соответствующие значения ключа реестра.
  2. Позвоните SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0), чтобы обновить значок.

После этого я дважды щелкаю файл .htm, и он открывается ожидаемым браузером.Но значок на рабочем столе не меняется на новый (например, с IE на Chrome).Однако, если я перезапущу explorer.exe, значок изменится на правильный.

Может кто-нибудь подсказать, пожалуйста, как обновить значок на рабочем столе после изменения сопоставления файлов?

Любые ответы отВы будете оценены, спасибо.

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

Попробуйте:

SHChangeNotify, SHCNE_GLOBALEVENTS, SHCNF_IDLIST ИЛИ SHCNF_FLUSHNOWAIT ИЛИ SHCNF_NOTIFYRECURSIVE, 0, 0

Измените ИЛИ на то, что есть на вашем языке, работает для меня.

или изменить

SHCNE_GLOBALEVENTS - SHCNE_ASSOCCHANGED

0 голосов
/ 28 февраля 2012

Попробуйте отправить уведомление об изменившейся среде, это может сработать:

DWORD result2 = 0;
LRESULT result = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,
    (LPARAM)_T("Environment"), SMTO_ABORTIFHUNG, 5000, &result2);
...