Hallo,
früher, als ich noch mit der AutoItVersion 3.3.8.1 gearbeitet hatte war alles noch in Ordnung.
Nun bin ich auf die AutoIt-Version 3.3.14.2 umgestiegen und damit gingen die Probleme los.
Zuerst, ich verwende Windows 10 1709 64bit als Betriebssystem und habe die UAC auf die unterste Stufe gestellt, weil ich ansonsten von UAC-Meldungen regelrecht erschlagen werde. Ich bin auch der einzige Benutzer des Rechners und habe daher auch nur ein Konto.
Nun zu meinem Problem:
Es geht um dieses "#RequireAdmin", das ist ja anscheinend wegen der UAC nötig, um der UAC mitzuteilen, dass das Script Admin-Rechte benötigt und deswegen nicht "rummeckern" soll.
Ich habe da z.B ein Script, welches zuerst gestartet wird. In diesem Script steht am Anfang dieses #RequireAdmin. Dieses Script ruft ein anderes Script mit Run() auf und in diesem Script steht auch dieses #RequireAdmin. Das erste Script funktioniert und ruft auch das zweite Script auf. Aber dieses zweite Script spinnt dann total, da werden Befehle einfach ignoriert (aber bei jedem Aufruf andere) oder Variablen habe auf einmal ganz falsche Werte oder das zweite Script wird komplett übersprungen usw.
Auch kann man z.B. keinen Autostart-Eintrag zu einem Script ausführen, wenn in diesem Script dieses #RequireAdmin steht.
Oder mit #RequireAdmin funktioniere plötzlich auch einige Run()-Befehle im Script nicht mehr.
Wie geschrieben, unter 3.3.8.1 funktionierte das alles einwandfrei, aber in der Version 3.3.14.2 ist da anscheinend etwas geändert worden.
Da muss ich wohl alle Scripte umschreiben, damit sie auch mit 3.3.14.2 funktionieren. Nur vorher muss ich genau wissen, wie man dieses #RequireAdmin in den beschriebenen Fällen einsetzt.
Darf man #RequireAdmin überhaupt nochmal benutzen, wenn es in einem vorherigen Script schon einmal benutzt wurde?
Und wie erstellt man einen funktionierenden Link zu einem Script, in dem #RequireAdmin stehen muss (wenn man es einfach weglässt, so funktiioniert vieles in dem Script nicht)?
MfG:
BigRox
P.S. mit dem
If Not IsAdmin Then
#RequireAdmin
EndIf
geht es auch nicht.