Ir al contenido


Foto

Elevacion de previlegios en programa


  • Por favor identifícate para responder
4 respuestas en este tema

#1 vvalladolid

vvalladolid

    Advanced Member

  • Miembros
  • PipPipPip
  • 90 mensajes
  • LocationMéxico

Escrito 19 septiembre 2011 - 09:47

Hola,
Tengo un programa donde debo de crear una llave en el registro de windows para que se arranque (el programa) al iniciar windows, vista o 7.


Como sabemos, para crear esta llave, se debe de tener privilegios de administrador.


He buscado en internet y entre otros encontre estas paginas ejemplo1 ejemplo2


Como pueden ver en los ejemplos, ambos utilizan el "manifest"


He realizado todo el procedimiento, sin embargo al compilar el programa, este no toma los privilegios de administrador.


archivo manifest:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    type="win32"
    name="pmonitorrc.exe"
    version="2.0.0.2552"
    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>



archivo RC


1 24 "pmonitorrc.manifest"


finalmente utilizo BRCC32 para generar el .res y .REC


Funciona perfecto, si manualmente le asigno que se debe de ejecutar con privilegios de administrador.


Alguien tiene alguna experiencia al respecto.


Gracias,


Saludos.



  • 0

#2 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 19 septiembre 2011 - 09:51

Segun tengo entendido, si escribes en CurrentUser no se necesitan esos privilegios
  • 0

#3 vvalladolid

vvalladolid

    Advanced Member

  • Miembros
  • PipPipPip
  • 90 mensajes
  • LocationMéxico

Escrito 19 septiembre 2011 - 09:57

No,


Manualmente en las propiedades del ejecutable, en la pestaña de compatibilidad, en la casilla nivel de privilegio.


La llave que debo generar en el registro.


    Registro.RootKey := HKEY_LOCAL_MACHINE;
   

('SOFTWARE\Microsoft\Windows\CurrentVersion\Run')

  • 0

#4 vvalladolid

vvalladolid

    Advanced Member

  • Miembros
  • PipPipPip
  • 90 mensajes
  • LocationMéxico

Escrito 19 septiembre 2011 - 10:09

Segun tengo entendido, si escribes en CurrentUser no se necesitan esos privilegios

Perdón, eduarcol no habia entendido tu respuesta.
Pero a nivel currentuser, no me sirve mucho ya que lo debo de crear para todos los usuaarios.


gracias,


  • 0

#5 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 19 septiembre 2011 - 01:39

Un proceso ejecutándose como usuario no administrador no puede elevar sus privilegios a administrador de "forma legal". ¿Que seguridad tendría un S.O. que permite que cualquier programa se convierta en administrador?.

Lo que precisas, escribir en la clave: 

delphi
  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run



Sólo hace falta realizarse una vez, durante la instalación de la aplicación. Las Instalaciones suelen realizarse como administrador y por lo tanto así debes actuar.


Saludos.
  • 0




IP.Board spam blocked by CleanTalk.