#winapi #shutdown #group-policy
#winapi #завершение работы #групповая политика
Вопрос:
Я хочу отключить или включить Shutdown
, Restart
Hibernate
и Sleep
опции в меню «Пуск» Windows XP / 7 программно и по требованию (немедленно).
Использование gpedit.msc
инструмента и установка Remove and prevent access to Shut Down command
значения Enabled
/ Disabled
сразу влияет на меню «Пуск», и эти параметры отображаются / скрыты, как я хочу. Но я не могу написать программу для этого.
Я нашел одно программное решение, которое создает NoAction
переменную со значением 1
, помещенным в этот путь реестра:
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer
Но это не отключает Shutdown / etc немедленно и влияет после explorer.exe
перезапуска.
Я также пробовал уведомлять explorer.exe
с помощью RefreshPolicyEx, RefreshPolicy, SHChangeNotify и широковещательной рассылки WM_SETTINGCHANGE
и WM_WININICHANGE
, но ни один из них не информировал Explorer о необходимости повторного чтения реестра / политик.
Я предполагаю, что использование API групповой политики было бы хорошим решением, но не знаю, как его использовать. Можете ли вы дать мне простой код для применения локальной групповой политики с помощью API групповой политики?
Или вы знаете какой-либо другой способ включить / отключить shutdown / etc немедленно и программно?
Примечание: Целевыми платформами являются Windows XP и Windows 7