Ver Mensaje Individual
  #2  
Antiguo 15-06-2016
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En este artículo (en inglés) está muy bien explicado. Básicamente podemos usar un "manifesto" para nuestra aplicación tal que así:

Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestversion="1.0">
<assemblyIdentity version="1.1.1.1">
processorArchitecture="*"
name="your_app_name.exe"
type="win32" />
<description>elevate execution level</description>
<dependency>
<dependentAssembly>
<assemblyIdentity>
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="*"/>
</dependentAssembly>
</dependency>
<trustinfo xmlns="urn:schemas-microsoft-com:asm.v2"><security>
<requestedPrivileges>
<requestedExecutionlevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustinfo>
</assembly>
Debes guardar el código de arriba como un archivo ".manifest" y asignarlo a tu programa desde la opciones del proyecto:



De todas formas, si sólo necesitas permisos de administrador para escribir en un archivo, entonces es que dicho archivo está en el lugar equivocado: donde no puedes escribir. Pero, si cambias la ubicación del archivo a una carpeta con permisos de escritura, por ejemplo, la carpeta "Documentos" del usuario, entonces no necesitarás permisos de administrador para tu programa. Creo que esto último es más razonables si necesitas dichos permisos sólo para escribir en un archivo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita