平台和设置:
AutoHotkey_L Unicode x86 1.1.13.0
RegView =默认
64位操作系统(W7)
32位脚本
嗨伙计,
以下代码行返回ErrorLevel = 1:
的RegWrite,REG_DWORD,HKLM,SOFTWARE \微软\的Windows \ CurrentVersion \政策\系统,PromptOnSecureDesktop,0
当我手动修改注册表时,它工作正常。顺便说一句,RegWrite以与ANSI x86二进制文件相同的方式失败(我没有尝试过Unicode x64二进制文件)。任何人都知道为什么RegWrite失败了?谢谢,乔
答案 0 :(得分:0)
注册表项的操作通常会假定管理员权限,如果UAC未关闭,则必须明确获取WIN Vista或更高版本的管理员权限。
对于AHK,请调用以下函数(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
}
}