Отключение и включение выключения по требованию - PullRequest
1 голос
/ 28 апреля 2011

Я хочу отключить или включить опции 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

...