Tengo una aplicación escrita en Delphi 7 que no requiere un privilegio de administrador para ejecutarse.¿Por qué mi aplicación me permite guardar archivos en las carpetas de Windows y System32 en Vista?
Por alguna razón, puedo guardar archivos en c: \ windows y c: \ windows \ system32 desde la aplicación aunque la aplicación no ha solicitado la elevación de UAC. He iniciado sesión como administrador con UAC activado y no he cambiado ninguna configuración de UAC predeterminada. Los archivos se muestran en Windows Explorer también. No estoy usando la opción 'Ejecutar como administrador'.
Si trato de hacer lo mismo usando WordPad bajo el mismo perfil me sale un error como se esperaba.
¿Alguna idea de lo que está pasando?
La aplicación Th utiliza el almacenamiento estructurado de Ole para guardar e incluye el siguiente manifiesto, si eso ayuda.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32" name="DelphiApplication" version="1.0.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.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Editar: Para que quede claro, mi aplicación no guarda nada en estas ubicaciones de forma predeterminada. Estoy eligiendo estas ubicaciones a través del cuadro de diálogo estándar para guardar archivos.
actualización
he descubierto por qué mi solicitud estaba siendo tratado como legado a pesar de incluir el manifiesto anteriormente. Resultó que también se incluía un segundo manifiesto que no tenía la sección 'trustInfo'. He eliminado este segundo manifiesto y todo está bien ahora.
Gracias por toda la ayuda
He iniciado sesión como administrador. No he usado la opción 'Ejecutar como administrador'. Se actualizará para aclarar – Jamie