Что нового

Отключение UAC с запросом

FlatX007

Tattoo!
Сообщения
197
Репутация
35
Версия AutoIt
3.3.14.5
Версия
1.0
Писал для себя, не пригодилось (жалко "выбрасывать") , не знал в какой теме создать пускай тут будет.

Включить 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
 
Верх