2010-08-05 5 views
8

si compila un programa en D2010 se genera automáticamente un archivo .res de manifiesto. ¿está incluido en tu programa por defecto? o tiene que incluirlo usted mismo? En caso afirmativo, ¿qué nivel de privilegio se le da? mi programa modifica una clave de registro ¿sería capaz de hacerlo sin modificaciones en el archivo .res? si no ¿qué modificaciones debo hacer?
una pregunta complementaria: ¿hay algún componente/experto (preferiblemente libre) que pueda generar/incluir el archivo .res en mis proyectos delphi 7 y delphi 2007 automáticamente al igual que delphi 2010?
edición: se olvidó de mencionar que no tengo Win7 o Vista ni nunca he utilizado los
Edit2: He incluido un archivo de manifiesto por si acaso siguiente this tutorial pero el tutorial sólo habla de Windows Vista y no 7 ¿el archivo .xml (manifiesto) en este tutorial hace que mi aplicación sea capaz de tratar con Win7 UAC también
edit3 si incluyo mi propio archivo de manifiesto y Delphi también lo incluye por defecto que hará 2 archivos de manifiesto (1 con admin previlages y 2nd sin), esto causaría problemas/comportamiento impredecibleson programas delphi 2010 capaces de abordar vista/win7 UAC de forma predeterminada

+1

¿Por qué su programa tiene que modificar una clave de registro de nivel administrativo? Si su programa necesita hacer eso, también tendrá problemas para ejecutarse en versiones anteriores de Windows, a menos que sus clientes tengan todos sus usuarios corriendo con privilegios administrativos, lo que sería una tontería. Además, si va a admitir versiones más nuevas de Windows, valdría la pena comprar una copia para poder probar su software en las plataformas que afirma que admite. –

+0

@rob kennedy: la situación no es lo que crees que en realidad obtuve una oferta de pasantía, mi primera entrevista fue bien pero me pidieron que enviara un programa de demostración, una de las cosas que me pidieron es que mi programa debería poder ejecutar cada time windows inicia mi solución a esto es modificar 'Software \ Microsoft \ Windows \ CurrentVersion \ Run' para que se inicie en el inicio de Windows. Temo que si lo prueban en Windows7 con una cuenta de usuario normal, mi software fallaría :( –

+0

If modificas esa configuración de registro en ** 'HKey_Current_User' **, no deberías tener ningún problema. O si colocas un acceso directo a tu programa en la carpeta de Inicio del menú de Inicio, eso debería funcionar también. Creo que sería ser * peor * para que requiera privilegios de administrador para su programa si el resto de sus funciones no lo requieren. Además, estoy seguro de que puede decirles cuando envíe su programa que no tiene acceso a Windows. 7 y entonces no podrías probarlo allí; eso ' s una situación perfectamente comprensible para un estudiante. Lo probarán en Windows XP en su lugar. –

Respuesta

8

El manifiesto generado por delphi le da a su proceso los privilegios más bajos (que es el predeterminado por cierto).

Debe modificar el archivo de manifiesto para que ASK para que se pueda ejecutar el permiso en derechos administrativos (elevación llamada).

Su aplicación con los privilegios estándar debe leer/escribir en HKEY_CURRENT_USER sin elevación.

El acceso a %programfiles% y HKEY_LOCAL_MACHINE requiere elevación. (No estoy tan seguro acerca de las otras colmenas de registro)

Este es un PDF que lo ayudará MUCHO con lo que está haciendo.

http://pascalfonteneau.developpez.com/articles/delphi/vista/uac/VistaUACandDelphi.pdf

+0

gracias aldo, vea mi edit2 –

+0

Eso también funcionará para Seven Sí, – zz1433

+0

gracias de nuevo, ahora amablemente vea edit3 :-) –

Cuestiones relacionadas