Solicitar privilegios de administrador durante el tiempo de ejecución
Pregunta
¿Cómo solicito privilegios de administrador durante el tiempo de ejecución para que el usuario se da el aviso para permitir o no permitir que?
Solución
Esta información se escribe en el manifiesto de archivo exe. Debe utilizar el campo requestedExecutionLevel
(pero no estoy seguro de eso - intente configurarla a highestAvailable
y ver si hace lo que necesita). Véase, por ejemplo aquí para obtener más información (artículo un poco más viejo, pero sigue siendo válida): http://blogs.msdn.com/b/cjacks/archive/2006/09/08/exploring- manifiestos-Part-2-default-espacios de nombres-y-uac-manifiestos-en-windows-vista.aspx
Existen herramientas en Visual Studio, que le permiten insertar su propio manifiesto o incluso sólo editarlo. También hay una herramienta escrita en Perl ( http://metacpan.org/pod/Win32 :: :: Manifiesto Exe ).
EDIT: ver este artículo para obtener más información: http://www.codeproject.com/Articles/66259/Requesting-Admin-Approval-at-Application-Start.aspx
Otros consejos
si lo desea, en respuesta a un botón (por ejemplo, como 'procesos espectáculo para todos los usuarios' en el administrador de tareas), usted tiene que Resart su aplicación utilizando el siguiente método
ShellExecute(0,L"runas",exepath,0,0,SW_SHOWNORMAL);