- Версия AutoIt
- 3.3.14.5
- Версия
- 1.0
Писал для себя, не пригодилось (жалко "выбрасывать") , не знал в какой теме создать пускай тут будет.
Включить UAC
Отключить UAC с запросом
Включить UAC
Код:
#RequireAdmin
#cs
PromptOnSecureDesktop, EnableLUA, ConsentPromptBehaviorAdmin
Всегда уведомлять — 1, 1, 2
Уведомлять при попытках приложений изменить параметры (значения по умолчанию) — 1, 1, 5.
Уведомлять без затемнения экрана — 0, 1, 5.
Отключить UAC и не уведомлять — 0, 0, 0.
#ce
_EnableUac() ; запуск без параметров запишет значения по умолчанию
Func _EnableUac($PromptOnSecureDesktop = 1, $EnableLUA = 1, $ConsentPromptBehaviorAdmin = 5)
If RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop", "REG_DWORD", $PromptOnSecureDesktop) Then ConsoleWrite("!PromptOnSecureDesktop[" & $PromptOnSecureDesktop & "]" & @CRLF)
If RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", $EnableLUA) Then ConsoleWrite("!EnableLUA[" & $EnableLUA & "]" & @CRLF)
If RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin", "REG_DWORD", $ConsentPromptBehaviorAdmin) Then ConsoleWrite("!ConsentPromptBehaviorAdmin[" & $ConsentPromptBehaviorAdmin & "]" & @CRLF)
EndFunc
Отключить UAC с запросом
Код:
#RequireAdmin
_DisableUac()
if not @error Then ConsoleWrite("UAC disable!" & @CRLF)
Func _DisableUac($hGui = 0)
if __read_uac() >= 1 Then
$iMsgBox = MsgBox(4,"UAC","Включен контроль учетных записей!" & @CR & "Для правильной работы программы его необходимо отключить" & @CR & "Сделать это?", 0, $hGui)
If $iMsgBox = 6 Then ;Yes
$i1 = RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop", "REG_DWORD", 0)
$i2 = RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA", "REG_DWORD", 0)
$i3 = RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin", "REG_DWORD", 0)
if $i1 + $i2 + $i3 = 3 Then
MsgBox(64,"UAC","Контроль учетных записей отключен", 0, $hGui)
Else
MsgBox(48,"UAC","Контроль учетных записей не удалось отключить полностью!", 0, $hGui)
EndIf
ElseIf $iMsgBox = 7 Then ;No
MsgBox(48,"UAC","Контроль учетных записей не отключен.", 0, $hGui)
EndIf
EndIf
EndFunc
Func __read_uac()
Local $iReadUac
$iReadUac += RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "PromptOnSecureDesktop")
$iReadUac += RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "EnableLUA")
$iReadUac += RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System", "ConsentPromptBehaviorAdmin")
If $iReadUac = 0 Then Return SetError(0, 0, 0)
If $iReadUac >= 1 Then Return SetError(1, 0, 1)
EndFunc