¿Cómo implemento las aplicaciones para que requieran derechos de administrador sin que el usuario final lo haga a mano?¿Cómo implemento las aplicaciones en ejecución como modo de administrador?
Uso Delphi 2009 para compilar la aplicación.
¿Cómo implemento las aplicaciones para que requieran derechos de administrador sin que el usuario final lo haga a mano?¿Cómo implemento las aplicaciones en ejecución como modo de administrador?
Uso Delphi 2009 para compilar la aplicación.
Puede informar a Windows que su aplicación necesita ejecutarse como administrador utilizando el elemento requestedExecutionLevel
en el manifiesto de su aplicación.
El archivo de manifiesto es un archivo XML que se ve de la siguiente manera. Debe llamarse YourApp.exe.manifest y colocarse en la misma carpeta que el ejecutable. (También puede ser incrustado en los recursos de su aplicación, sino que debe tener un tipo de recurso de RT_MANIFEST
y un ID de 1.)
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="YourApp" type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Para más detalles sobre manifiestos de aplicación y cómo crearlos, consulte al Create and Embed an Application Manifest (UAC) MSDN.
Tenga en cuenta que el manifiesto solo es respetado por Windows Vista y posterior. Si su usuario se está ejecutando como un usuario estándar en Windows XP, su aplicación no se iniciará como administrador; Es posible que necesite escribir un código para detectar esto si se trata de un problema para su aplicación.
intenté con su solutino utilizando una nueva aplicación VCL Forms en delphi xe2, creando un archivo txt con el contenido que puso arriba desde
@ user193655: ¿Has desactivado el UAC? Si es así, Windows no le pedirá que eleve. De lo contrario, los pasos que describió suenan correctos. Probablemente sería mejor publicar todos los detalles como una nueva pregunta; puede haber algún problema específico de Delphi sutil (que yo desconozca) que otros usuarios de Delphi podrían responder por usted. –
@BradleyGrainger: ¿desde dónde estamos en UAC? –
Otra opción, aunque no recomendada para "aplicaciones diarias", es nombrar su ejecutable con "Instalar" o "Configurar" como parte del nombre. Tenga en cuenta que si no cambia ninguna configuración de registro o crea archivos nuevos, Windows mostrará una advertencia al usuario de que el programa podría no haberse ejecutado correctamente.
¿Qué usa para implementar su programa? (Es bastante relevante ya que puede necesitar que su instalador genere accesos directos que tengan el indicador "ejecutar como administrador".) –