Es kam ja schon häufiger die Frage auf, ob es möglich sei, mitten in einem Skript plötzlich Adminrechte zu erlangen.
Ich habe eine Möglichkeit gefunden:
Spoiler anzeigen
[autoit]
#include <File.au3>
If $CmdLine[0] = 0 Then
main()
Else
admin()
EndIf
Func main()
;unprivileged actions...
MsgBox(64,"Admin?",isAdmin())
;...
;until:
$hFile=FileOpen(@ScriptFullPath,1)
FileWrite($hFile,@CRLF & "#RequireAdmin")
FileClose($hFile)
Exit ShellExecute(@ScriptFullPath,"admin")
EndFunc
Func admin()
$lines=_FileCountLines(@ScriptFullPath)
_FileWriteToLine(@ScriptFullPath,$lines,@CRLF,1)
;privileged actions...
MsgBox(64,"Admin?",isAdmin())
EndFunc
Funktioniert das bei euch?