Мне интересно, есть ли способ обновить раздел реестра HKLM HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer - без перезапуска оболочки.
Я бы хотел сделать это без перезапуска проводника. Есть ли какой-нибудь известный способ сделать это?
Пока я нашел только эту вещь:
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
, что не работает для моего случая.
Мне кажется безумным, что MS сделал Explorer, поэтому он не может перечитать свою конфигурацию во время работы), но вы никогда не знаете.
EDIT:
Я пытаюсь отключить / включить область уведомлений (трей) без перезапуска.
Раздел реестра
Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer \
Переменная: NoTrayItemsDisplay
Значение: 1/0
РЕДАКТИРОВАТЬ 2
Это исходный код, который должен работать, но в Vista это не так, не для области уведомлений, не для моего тестового манекена, который был MyMusic в startMenu (переменная NoStartMenuMyMusic)
#include <stdio.h>
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
DWORD dwRetVal;
int lResult = SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, (WPARAM)0,
(LPARAM)"Policy",
SMTO_ABORTIFHUNG, 5000, &dwRetVal);
printf("lResult = %ld\n", lResult);
printf("dwRetVal = %ld\n", dwRetVal);
return 0;
}
Я безуспешно перепробовал все нормальные значения wparam и lparam. Я взял код с здесь
и чувак утверждает, что это работает ...
В этой статье утверждается, что код не работает.
Что еще более смешно, так это то, что gpupdate подходит для этой работы.
Thx.