Ver Mensaje Individual
  #1  
Antiguo 07-08-2011
gersojn gersojn is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 85
Reputación: 15
gersojn Va por buen camino
Privilegios en Aplicacion Delphi

Hola, les cuento que estoy haciendo una aplicacion la cual necesita permisos de administrador para que algunas funciones sirvan, como leer el nombre del procesador por medio de un Registry, etc.

He estado investigando y encontre un hilo que explicaba como hacerlo, no agrego el link porque aun no puedo agregar, pero cito textualmente la solucion a la que llegan:

Cita:
Empezado por Chris Ver Mensaje
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>
Guarda en un archivo separado la nueva versión del archivo de recursos. Talvez le puedes nombrar vista_RequireAdministrator_manifiest.res. Luego en el proyecto quita toda referencia a XPManifiest y la unidad XPMan (es muy importante que hagas esto). Cuando ya lo hallas hecho, en cualquier parte del código de tu aplicación incluye una directiva de compilación {$R vista_RequireAdministrator_manifiest.res} indicando que adjunte el archivo manifiesto que has creado con el código que anteriormente te proporcione.

Saludos,
Chris
Bueno, el problema que yo tengo es que trabajo con Windows 7, y con Embarcadero2010, y bueno lo unico que tengo dentro de la carpeta de mi aplicacion es un Project1.res, no tengo ninguno mas, intente inicialmente modificar ese archivo agregandole el codigo anterior y luego no me ejecuto la aplicacion, despues cree un archivo_prueba.res pero no logre adjuntarlo, el codigo del Project1.res es:

Código:
        ÿÿ  ÿÿ                  ¨      ÿÿ ÿÿ     
        (       @                                                                     U_U €€€ ª €€€ €€€ €€€ €€€ ¤   U?U U_U U?U U_* U_U U?U U_U U_U U?U U_U U?U U_U U?U U_U                                 €€€ U_U €€€ U_U €€€ €€€ ª €€€ ªŸª U_U ÿ ªU ª_U ª_U ª_U ª_U U?U U¿Ô UŸª UŸÿ  ¿Ô U¿ÿ UŸª U_U                         €€€ ª U ªU U?U €€€ U_U ª_ U ª €€€ U_U ªU ¤   ªU ª_U ª_U ªU U?U UŸª Uª  ßÔ Ußÿ  ¿Ô U¿Ô U?U                     €€€ €€€ ªŸ €€€ €€€ U_U U_U €€€ U_U ª U ÿ¿ª U_ ¤   ÿŸ ª_U ª_U ª_U ª_* U_U UŸª UŸÔ  ¿ÿ U¿Ô Ußÿ  ŸÔ U_U                 €€€ €€€ ªŸ ª ª €€€ ª U_U U_U U_U U €€€ ª¿Ô U_U ÿ ªŸ ªU ª_* ª_U ª_U U?U ªŸª UŸª ª¿Ô  ¿ÿ  ¿ÿ UßÔ U?U             U €€€ ÿŸ ªŸª ªŸ ªŸ ª €€€ €€€ €€€ ªŸª UŸÔ ª¿Ô ÿÿÿ U_ ªŸU ÿŸª ª_U ª_U ª_U ª_U U_U U¿ª  ŸÔ Ußÿ ªßÔ Ußÿ  ŸÔ U_U         €€€ ªŸ ªŸ ¤   ÿŸ ªŸ ¤   €€€ ªª UŸª Uª UŸª ªŸª UŸÔ ª¿Ô UU U?U U?U U_U U?U U_U U_* U?U U?U U_U U?U U_U  ?U U?U U_U         €€€ ÿŸª ª¿ ÿŸ ªŸ ÿŸª €€€ UŸª UŸª Uª U_ª  ?  ?U U?U ªŸÔ U_U UŸÔ UŸÿ  ª U?Ô  ?Ô ÿ  _U ª¿ª UU UŸU U¿ U¿ª U¿U U?U     €€€ ¤   ¤   ÿŸª ÿ¿ ¤   ¤   €€€ UŸÔ UÔ U? ÀÜÀ €€€ ªŸª ªª ÀÜÀ ª_U  ÿ UÔ U_Ô  ?ª U?Ô  ?ª U?U UŸU UŸU U¿ U¿ª U¿ UŸU U?U     €€€ ÿŸª ÀÜÀ ÿŸª ¤   ÿ¿ª €€€ UÔ UŸª U_ª  ? ÀÜÀ ÿ¿Ô UŸª ªŸª ÀÜÀ U_ UÔ UŸÔ  Ô U?Ô  _Ô Uª U_U ª¿ª  U U¿ U¿ª U¿ UŸ U_U ª ªŸª ÀÜÀ ðʦ ÀÜÀ ÿ¿ª ¤   Uª  Ô UÔ  _ª  ?U ÿÌÿ ÀÜÀ U_  ?U ¤   U_ UŸÔ  Ô U_Ô  ?Ô  ?Ô ªª U?U U¿ª UŸU UŸU U¿ª U¿ U¿ U?U €€€ ¤   ÿßÔ ÿ¿Ô ðʦ ÀÜÀ ªŸª  _ª UÔ  _Ô U_ª  ?U ÿßÔ ª¿Ô U_  ? ª¿Ô U_U UŸÔ UÔ  Ô U?ª U_Ô  ?Ô U_U €€€ UU U¿ U¿ U¿ª U¿ U_* €€€ ÀÜÀ ÿÿÿ ÿßÔ ÀÜÀ ÿßÿ €€€  _Ô  _ª U_ª  _ª   ÀÜÀ ª¿Ô U?U U_ª ª¿Ô ªŸª U_ U_U U_U U_ U_U U_U U_ U_U U_U U_ U_U U_U U_U ªŸª €€€ ÿÿÿ ÿßÔ ÀÜÀ ÿ¿Ô ÀÜÀ U_ª  _ª U_Ô  _ª U?ª  ?U ÿßÔ ¤    _  ? UÔ ªßÔ ª¿Ô ªŸÔ ÀÜÀ ÿßÿ ª¿Ô ªŸª ª¿Ô ªßÿ ÿÿÿ ÀÜÀ ÿ¿Ô ªŸª ªŸ ªŸª U ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿßÔ  ?ª U?ª  _ª  _ª  _ª UU ªßÿ ¤   U?U U_ª  _ª UÔ UÔ  €€ U_ª ÀÜÀ €€€ U?U UÔ U¿Ô ªŸÔ UŸª €€€ ªŸ ¤   €€€ ª ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÀÜÀ  _ª  ?ª U?ª  ?ª  ?ª  ?U ÿßÔ ª¿ª  ?  ? UÔ U_ª  Ô U? U_ ÀÜÀ ªŸª  ?U Uª ªŸÔ U¿Ô ªª €€€ ªŸ €€€ ªŸª U ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÀÜÀ U?  ?ª  _ª U_ª U_ª  U ÀÜÀ ªŸÔ U_U  ?ª U_ª  Ô U_ª  _ U_ª ÀÜÀ ªª  ? Uª UŸÔ UŸÔ €€€ €€€ €€€ ªª €€€ ª ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ  _ª U_  _ª Uª  ?  ? ÿßÔ ¤    ? U?  _ª  _Ô U_ª  ? €€€ ª¿Ô €€€ U?  ª UŸÔ UŸÿ €€€ U_U €€€ €€€ €€€ U ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ªŸª U_ª U_Ô ªŸÔ U_ª  U ÿßÔ ¤   U?  ?  _ª U_ª  ?ª  U ªÔ ÀÜÀ U  ?U UÔ UÔ €€€ U €€€ ªU €€€ €€€ €€€ ÿßÔ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÀÜÀ UŸª ÀÜÀ Uª U_ª  U ÀÜÀ ªŸª U?U   €  _ª  ?  ?U U_ ÀÜÀ ªŸÔ U?  ?ª Uª  Ô Uª U?U U_U U_ UU ª €€€ ÀÜÀ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÌÿ ª¿ª U_ª  ?  U ÿÌÿ ÀÜÀ  ?  U  U  U U_ª ÿ¿Ô ÀÜÀ €€€  ?U  _ª  Ô U_Ô €€€ €€€ U_U U_U ª_ UU €€€ €€€ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ UŸÔ Uª U_  U ÀÜÀ ÀÜÀ ªŸª €€€ Uª ÿ¿ª ª¿Ô ÀÜÀ ªª    ?ª U_ª  _ª Uª €€€ UU ª_U U_ €€€ €€€     €€€ ÀÜÀ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ª¿ª U_ª  ?  U ÿÿÿ ÿßÔ ÿÌÿ ÀÜÀ ÿßÔ ª¿Ô ªŸª U?  U  ? U_ª  _ª Uª €€€ ªŸ ª_ €€€ U_U €€€         €€€ €€€ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ªŸª  ?  ?U  U  U  U  U  U  U  U  ?  ?  ?ª  ?ª  _ª ªª ªŸ €€€ ªŸ ª €€€ UU             €€€ ¤   ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ªŸª U?  ?    ?U    ?U    ?  ?  ?ª  ?ª U_ ªŸª ªŸ ªŸ ªŸ €€€ ªŸ €€€                 €€€ €€€ ÿßÔ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÀÜÀ €€€  _ U?  ?  ?  ?  ? U?ª U_ €€€ ª¿Ô ÿŸ ªŸª ÿŸ ªŸª ª €€€ €€€                     €€€ €€€ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿßÿ ÀÜÀ ª¿ª ªŸª ¤   ªŸÔ ª¿ª ÀÜÀ ÀÜÀ ÿŸª ª¿ ÿŸ ªŸ ªŸ ªŸ €€€                             €€€ €€€ ÿßÔ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿßÔ ÀÜÀ ÿÌÿ ðʦ ðʦ ª¿ª ÿŸª ª¿ª ÿŸ €€€ €€€                                     €€€ €€€ ¤   ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿßÔ ÿßÔ ÀÜÀ ÿÌÌ ÿ¿ª ª¿ª ÿŸ €€€ €€€                                             €€€ €€€ €€€ ÀÜÀ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÀÜÀ ÿ¿Ô ÀÜÀ ÿ¿ª ªŸª €€€ €€€                                                         €€€ €€€ €€€ ¤   ÀÜÀ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÿÿ ÿÌÌ ÀÜÀ ¤   €€€ €€€                                                                         €€€ €€€ €€€ €€€ €€€ €€€ €€€ €€€ €€€ €€€ €€€ €€€                                         ÿÀ  ÿ   ü   ø   ð   à   À   À   €   €                                                   €  €  À  À  à  ð  ø  ü  ?ÿ  ÿÿÀÿ   0   ÿÿ M A I N I C O N         
                   ¨   R      ÿÿ ÿÿ     
        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    type="win32"
    name="CodeGear RAD Studio"
    version="14.0.3513.24210" 
    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="asInvoker"
          uiAccess="false"/>
        </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>
Copiado con Bloc de notas, alguien me puede ayudar con este problema, ya intente varias cosas, pero no logro hacerlo.

De antemano muchas gracias por la ayuda.
Responder Con Cita