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