FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Obligar ejecucion como Administrador de mi aplicacion
Hola compañeros, ¿saben alguna manera de forzar la ejecución de una aplicación en modo administrador? Para Windows 7, pero sin que el usuario final tenga que "ticar" esta opción en las propiedades del ejecutable. Mucha gracias por su atención. Utilizo Delphi 7.
Aunque sea lanzandola desde otro ejecutable con algún parametro "winexec(.....)" etc.. |
#2
|
||||
|
||||
A mi parece que con la API CreateProcessAsUser o mejor con CreateProcessWithLogonW puedes lograr ese objetivo, por tanto te aconsejo que hagas una búsqueda con palabras clave como "CreateProcessAsUser" o "CreateProcessWithLogonW" y de seguro encontrarás bastante hilos(temas) que te ayudarán.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#3
|
||||
|
||||
Tienes que incluir un recurso manifiesto del UAC en el ejecutable que indique que el EXE necesita de privilegios administrativos.
|
#4
|
|||
|
|||
Cita:
Cita:
Código:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> |
#5
|
||||
|
||||
El XPManifiest (declarado en la unidad XPMan) lo único que hace es incluir un archivo de recursos llamado WindowsXP.res (este archivo está en la carpeta de recursos de Delphi).
Lo que tienes que hacer, es hacer una modificación del archivos WindowsXP.res y con un editor de registros cambia el único recurso #24 con el siguiente contenido: Código:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="Delphi 7" version="7.1.0.0" processorArchitecture="*"/> <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.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly> Saludos, Chris |
#6
|
|||
|
|||
Cita:
|
#7
|
|||
|
|||
Gracias por tu aportación Cris, pero a mí me hace falta un poco más de ayuda.
¿Podrías explcarme cómo puedo editar el recurso WindowsXP.Res? Y qué tengo que hacer más detalladamente. Soy muy novato. He creado un recurso nuevo con el código que mandaste y con brcc32, pero, aunque no da error al complilarlo, al ejecutarlo da el error de: "No se puede iniciar... configuración es incorrecta....Reinstalar...." Esto en XP. Si lo ejecuto en Vista dice: "Error al iniciar la aplicación; la configuración en paralelo no es correcta...." Gracias de todos modos por tus aportaciones. Un saludo. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como saber si mi aplicación ya está en ejecución. | ajgomezlopez | API de Windows | 6 | 29-01-2010 23:24:06 |
Obligar ingreso de datos en varios DBEdits | chino150 | Varios | 3 | 24-02-2009 05:49:27 |
Aplicación con privilegios de administrador | vtorres | Varios | 8 | 07-11-2008 16:59:38 |
Dar privilegios de Administrador a la Aplicación | PoZi | API de Windows | 16 | 26-04-2006 20:17:52 |
¿Como no permitir mas de 1 ejecucion de la misma aplicacion? | Moises22 | Varios | 2 | 27-09-2005 13:47:19 |
|