2013-09-29 2 views
0

Платформа и настройки:RegWrite возвращение Равен 1

AutoHotkey_L Unicode x86 1.1.13.0

RegView = По умолчанию

64-разрядных ОС (W7)

32-битный сценарий

Hi Folks,

Возвращает следующую строку кода Ошибка Уровень = 1:

RegWrite, REG_DWORD, HKLM, SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System, PromptOnSecureDesktop, 0

Когда изменения в реестр вручную, он отлично работает. Btw, RegWrite не работает аналогично с ANSI x86 двоичным (я не пробовал двоичный код Unicode x64). Кто-нибудь знает, почему RegWrite не работает? Спасибо, Joe

+4

Может быть, это потому, что вам нужно, чтобы запустить его [с правами администратора] (http://www.autohotkey.com/board/topic/46526-run -по администратором xpvista7-а-IsAdmin-PARAMS Пб /? р = 311068). – MCL

+0

@MCL, все! Огромное спасибо. С уважением, Joe – user2829469

ответ

0

В манипуляции с записями реестра обычно постулируются права администратора, которые с WIN Vista или более поздней версии должны быть получены явно, если UAC не был отключен.
Для АХК, вызовите следующую функцию (source):

RunAsAdmin() { 
    Loop, %0% ; For each parameter: 
    { 
     param := %A_Index% ; Fetch the contents of the variable whose name is contained in A_Index. 
     params .= A_Space . param 
    } 
    ShellExecute := A_IsUnicode ? "shell32\ShellExecute":"shell32\ShellExecuteA" 

    if not A_IsAdmin 
    { 
     If A_IsCompiled 
     DllCall(ShellExecute, uint, 0, str, "RunAs", str, A_ScriptFullPath, str, params , str, A_WorkingDir, int, 1) 
     Else 
     DllCall(ShellExecute, uint, 0, str, "RunAs", str, A_AhkPath, str, """" . A_ScriptFullPath . """" . A_Space . params, str, A_WorkingDir, int, 1) 
     ExitApp 
    } 
} 
+0

Я нашел этот код вчера после вашего совета, но я не понимаю, что он делает. Я нашел многочисленные ссылки на него (включая более раннюю версию, которая не работала с скомпилированными скриптами или переданными параметрами), поэтому я уверен, что она работает, но я не нашел ничего, что объясняет это. Я хотел бы понять это, прежде чем использовать его в скриптах. Любой совет для этого? Спасибо, Joe – user2829469

+0

@ user2829469 Этот сценарий в основном вызывает функции Windows API «ShellExecute» или «ShellExecuteA» соответственно, в зависимости от вашей версии AHK. Параметр «RunAs» 'является своего рода трюком для повышения привилегий UAC. Другие параметры должны быть довольно простыми, указав путь к исполняемому файлу и, при необходимости, начальные аргументы, полученные в первую очередь. Проверьте [ShellExecute в документах Win API] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153 (v = vs.85) .aspx). – MCL

+0

MCL, Я рассмотрю документ ShellExecute и вернусь к вам, если у меня возникнут вопросы. Большое спасибо, Joe – user2829469

Смежные вопросы