2012-05-06 26 views
6

He escrito una aplicación de base de datos que importa datos desde un archivo de Excel a una base de datos de Access.Cómo otorgar elevación con Delphi

que nunca han tenido problemas para ejecutar la aplicación, para insertar registros en la base de datos, pero tan pronto como funciono con la función para importar datos de Excel en el acceso me sale el siguiente aviso:

La solicitado operación requiere elevación - por código dado:

LAccess := CreateOleObject('Access.Application'); 

Qué está causando esto y hay una manera de conseguir alrededor de él

Respuesta

8

la función CreateOleObject Delphi llama internamente al método CoCreateInstance Winapi la que r Equivale la elevación. tienes un par de opciones para lidiar con esto.

1) Agregando un manifiesto a su aplicación incluyendo el requested execution levelrequireAdministrator.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
<assemblyIdentity 
    name="Your app name goes here" 
    processorArchitecture="x86" 
    version="5.1.0.0" 
    type="win32"/> 
<description>your app description goes here</description> 
<dependency> 
    <dependentAssembly> 
     <assemblyIdentity 
      type="win32" 
      name="Microsoft.Windows.Common-Controls" 
      version="6.0.0.0" 
      processorArchitecture="x86" 
      publicKeyToken="6595b64144ccf1df" 
      language="*" 
     /> 
    </dependentAssembly> 
    </dependency> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
     <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel 
      level="requireAdministrator" 
      uiAccess="false"/> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
</assembly> 

2) Puede iniciar un proceso secundario elevado que haría la tarea o crear un objeto COM que se ejecuta elevada, se puede encontrar más información en estos MSDN entradas

+0

processorArchitecture = "*" es compatible para indicar que todas las arquitecturas de procesador. – eyeClaxton

Cuestiones relacionadas