![]() |
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. |
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 |
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. |
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