Hallo Tom,
zu dem Problem habe ich im Internet vor einiger Zeit eine UDF SystemElevate.au3 gefunden. Die UDF erlaubt es aus dem System Kontext heraus die Session ID des angemeldeten Benutzers auszulesen und Kommandos unter dieser Session ID zu starten. Dein Script müsste dann so aussehen
AutoIt
#include "SystemElevate.au3"
_RunProcessAsUser('C:\temp\VeraCrypt Setup 1.14.exe')
_ImpersonateUserStart()
WinActivate ("VeraCrypt Setup 1.14")
Sleep(500)
Send("!a")
ControlClick("VeraCrypt Setup 1.14", "", 1026)
Sleep(500)
ControlClick("VeraCrypt Setup 1.14", "", 1026)
Sleep(500)
ControlClick("VeraCrypt Setup 1.14", "", 1026)
Sleep(2500)
WinActivate ("VeraCrypt Setup")
ControlClick("VeraCrypt Setup", "", 2)
Sleep(2500)
WinActivate ("VeraCrypt Setup 1.14")
Sleep(500)
ControlClick("VeraCrypt Setup 1.14", "", 1026)
Sleep(2500)
WinActivate ("VeraCrypt Setup")
ControlClick("VeraCrypt Setup", "", 7)
_ImpersonateUserEnd()
Alles anzeigen
Das setzt natürlich voraus, dass auch ein User angemeldet ist und entsprechende Rechte hat um das Setup zu starten. Ich habe es allerdings noch nie mit Control Steuerung ausprobiert.
Ich hoffe es hilft dir weiter.