es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe una manera de verificar el nivel de ejecución de tu programa?

Actualmente estoy trabajando en una aplicación de Windows Forms que, para algunas de sus funciones, necesita privilegios de administrador para modificar un archivo .ini de una aplicación heredada a la que hace referencia. Sin embargo, se sabe que no todos los usuarios tendrán derechos de administrador.

Mi idea actual es agregar un archivo app.manifest a la solución y establecer el requestedExecutionLevel en highestAvailable para solicitar derechos de administrador si es posible, y de lo contrario, ejecutar la aplicación con la seguridad predeterminada. Configuraciones de app.manifest para referencia:


<!– Opciones de manifiesto de UAC
Si desea cambiar el nivel de control de cuentas de usuario de Windows, reemplace
el nodo requestedExecutionLevel con uno de los siguientes.

<requestedExecutionLevel  level="asInvoker" uiAccess="false" />
<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

    Especificar el elemento requestedExecutionLevel deshabilitará la virtualización de archivos y registro. 
    Elimine este elemento si su aplicación requiere esta virtualización para la compatibilidad hacia atrás.
-->
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

Mi pregunta es, ¿es posible detectar el nivel de ejecución para que pueda modificar el comportamiento de la aplicación en función de si el usuario tiene acceso de administrador?

Editar: Estoy buscando una manera de verificar específicamente si la aplicación en sí se ejecuta con privilegios elevados en lugar de con seguridad predeterminada si es posible. La solución sugerida de validar el nivel de permisos del usuario es una solución potencial / parcial, pero preferiría, si es posible, verificar el comportamiento de la aplicación directamente en lugar del potencial nivel del usuario. Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible detectar el nivel de ejecución de su aplicación. Puede utilizar el Windows API Code Pack para comprobar el nivel de ejecución de su aplicación. Esta API devolverá el nivel de ejecución de la aplicación, que se puede utilizar para modificar el comportamiento de la aplicación en consecuencia.

Comments are closed.