註冊表項的操縱通常假定管理員權限,如果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
}
}
來源
2013-10-02 07:47:51
MCL
也許是因爲你需要運行[用管理員權限(http://www.autohotkey.com/board/topic/46526-run -as-管理員xpvista7-A-isadmin-PARAMS-LIB/p = 311068)。 – MCL
@MCL,就是這樣!非常感謝。問候,喬 – user2829469