Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Privilegios y Windows Vista (https://www.clubdelphi.com/foros/showthread.php?t=61702)

mrtossas 18-11-2008 21:57:57

Privilegios y Windows Vista
 
Hola a todos,

Tengo un programa que en XP va de maravilla; pero llegó Vista... y el caso es que utilizando botón derecho y ejecutar como administrador afortunadamente también funciona, excepto una opción donde necesito escribir en el win.ini que da error de escritura. Buscando información, he leido que está protegido en Vista, ¿alguién puede ayudarme para escribir un valor en el win.ini?

Si de ninguna forma fuese posible, necesito escribir un valor en "algún sitio" (regedit...) que sea accesible (lectura y escritura) independientemente del usuario que inicie sesión en Vsta. ¿Qué me recomendáis?

Gracias.

Marcial.

defcon1_es 19-11-2008 12:05:00

Hola.

Para que tu aplicacion tenga permisos de administrador en windows vista, incluye este codigo en el *.dpr:

{$R *.RES}
{vista.res} //pon esta línea en tu código

El fichero lo he dejado en el FTP del club, en la seccion Delphi-Win32/Recursos/

¿Es realmente necesario que escribas en el fichero win.ini?

La solución a tu problema:
Todas las carpetas de sistema, incluyendo c:\documents and settings
tienen marcada la opcion "Denegar permisos explicitamente" para cualquier grupo de usuarios.
Esta opcion prevalece sobre las del grupo administradores, puesto que al ser un grupo,
está contenido en la opcion "Todos los grupos".

Debes entrar como administrador y quitar esa marca.

Texto original:
All of the system areas including c:\documents and settings have the
Everybody Group with an Explicity Deny permission. This over-rides the full
control permission that the adminsitrator group has because he is also in
the everyone group. Just take Ownership as an admistrator and then remove
the Everyone Group and then you will have access.

http://www.vistax64.com/vista-genera...les-vista.html

mrtossas 19-11-2008 21:45:16

Daniel, gracias por tu respuesta.

No me funciona lo de incluir vista.res, pero tal vez es porque utilizo delphi 5. He creado yo otro vista.res a partir de:

<?xml version="1.0" encoding="utf-8" ?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="X86"
name="Vista UAC Compat.Application"
type="win32" />
<description>WindowsVistaReadiness Application</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

y lo he compilado con el brcc32 de delphi 5 y crea el archivo algo mayor que el tuyo, pero tampoco funciona.

Escribir en el win.ini no es imprescindible, pero sí por ejemplo en la rama de all_users, cosa que tampoco consigo. Y lo de ejecutar la aplicación con permisos de administrador, sí que me es imprescindible, ya que entre otras cosas, leo el nº de serie del disco (y como user normal, no se puede leer).

¿Alguna idea? (aparte de migrar a un delphi más moderno... de momento).

Gracias de nuevo por tu tiempo.

mrtossas 19-11-2008 22:35:31

Perdón, sí funciona!

Había hecho un copiar y pegar de tu línea:

{vista.res}

cuando lo correcto es:

{$R vista.res}

En fin, la de vueltas que he dado por no fijarme en ese detalle tonto.

Ahora ya funciona ok el programa.

Lo único y que no sé si tiene solución sería evitar que salga la pantallita esa de Permitir... ¿es posible? Gracias de nuevo.


La franja horaria es GMT +2. Ahora son las 02:24:20.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi