0

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

  1. Изменения ассоциированной реестры.
  2. Звоните SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0), чтобы обновить значок.

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

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

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

ответ

1

Try:

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

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

Или изменить

SHCNE_GLOBALEVENTS в SHCNE_ASSOCCHANGED

+0

до сих пор не работает – ericchan1336

+0

невозможно, то есть то, что я использую в моем редакторе расширения файла и никто не имеет проблема с этим. Какая ОС? – Gunner

+0

это xp sp3 ... – ericchan1336

0

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

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

извините, но это не работает ... – ericchan1336