Si necesitas ejecutar una aplicación desarrollada con Xojo bajo Windows con Control de Acceso de Usuario Elevado (UAC), entonces hallarás la respuesta en el siguiente fragmento de código obra de Wayne Golding.
El siguiente método se encarga de crear un Script en Visual Basic (VBS) encargado de ejecutar tu programa con privilegios de Acceso Elevados. Este no se encarga de esquivar las medidas de seguridad de Windows, no hay nada que temer; al contrario, lo que logra es mostrar el diálogo de UAC para que el usuario pueda dar su conformidad introduciendo las credenciales de usuario con derechos de administración. El parámetro del programa ha de ser la ruta en formato nativo (NativePath
) correspondiente al archivo ejecutable.
Puedes utilizar este método para ejecutar apps de Consola de modo que permita realizar tareas como la actualización de elementos protegidos del registro o bien instalar programas.
Sub ExecuteWithUAC(program As String, args As String)
Dim f As FolderItem
Dim t As TextOutputStream
Dim script As String = "Set objShell = CreateObject(""Shell.Application"")" + EndOfLine
+ "objShell.ShellExecute """", """", """", ""runas"", 1" + EndOfLine
Dim s As String
f = GetTemporaryFolderItem
f = GetFolderItem(f.NativePath + ".vbs")
t = TextOutputStream.Create(f)
s = ReplaceAll(script, "", program)
s = ReplaceAll(s, "", ReplaceAll(args, chr(34), chr(34) + chr(34)))
t.WriteLine(s)
t.Close
Dim sh As New Shell
sh.Mode = 0
sh.TimeOut = 10000
sh.Execute("Wscript.exe " + f.NativePath)
f.Delete
End Sub