Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: rusco en 13 Noviembre 2012, 15:33 pm



Título: Saber access instalado
Publicado por: rusco en 13 Noviembre 2012, 15:33 pm
Hola,

El caso es que me interesa saber el access instalado en una pc, y no se nada de script, pués según el access debo lanzar 1 script o 1 exe, el script es para que cambie el nivel de las macros en access 2003, y el exe para la carpeta de confianza en access 2007 y 2010.

He recopilado un codigo que creo que esta en script para averiguar el access, el cual no entiendo muy bien como se usa, ni como según el resultado ejecutar los archivos necesarios pasandole la ruta donde se encuentran.

Pego el código por si alguien me puede ayudar.
Código:
function fVersionAccess(): Byte;
var
localAccess : String;
loaded: String;
begin
    Result := 0;
    RegQueryStringValue( HKLM,'Software\Microsoft\Windows\CurrentVersion\App Paths\Msaccess.exe','path',loaded );
    RegQueryStringValue( HKLM,'Software\Microsoft\Office\9.0\Access\InstallRoot','Path',localAccess );
    if fileexists(localAccess + '\MsAccess.exe') then
if localAccess = loaded then
  Result:=1; //Access 2000
    localAccess := '';
    RegQueryStringValue( HKLM,'Software\Microsoft\Office\10.0\Access\InstallRoot','Path',localAccess );
    if fileexists(localAccess + '\MsAccess.exe') then
if localAccess = loaded then
  Result := 2; //Access 2002
    localAccess := '';
    RegQueryStringValue( HKLM,'Software\Microsoft\Office\11.0\Access\InstallRoot','Path',localAccess );
    if fileexists(localAccess + '\MsAccess.exe') then
if localAccess = loaded then
  Result := 3; //Access 2003
    localAccess := '';
    RegQueryStringValue( HKLM,'Software\Microsoft\Office\12.0\Access\InstallRoot','Path',localAccess );
    if fileexists(localAccess + '\MsAccess.exe') then
if localAccess = loaded then
  Result := 4; //Access 2007
    localAccess := '';
    RegQueryStringValue( HKLM,'Software\Microsoft\Office\14.0\Access\InstallRoot','Path',localAccess );
    if fileexists(localAccess + '\MsAccess.exe') then
if localAccess = loaded then
  Result := 5; //Access 2010
end;


function fversion(version: String): Boolean;
begin
   result:=false;
   Case version of
'1110': begin
 if not fVersionAccess()=4 then // Si no tiene Access 2007
result:=true;
end;
  '0011': begin
   if not fVersionAccess()=5 then // Si no tiene Access 2010
result:=true;
end;
   '1100': begin
   if not fVersionAccess()=3 then // Si no tiene Access 2003
result:=true;
end;
'0001': begin
 if fVersionAccess()=4 then  //Access 2007
result:=true;
end;
'0010': begin
 if fVersionAccess()=3 then  //Access 2003
result:=true;
end;
  '0101': begin
      if fVersionAccess()=5 then  //Access 2010
      result:=true;
    end;
end;
end;

function IsAccessRuntimeInstalled(): Boolean;
begin
  Result := RegKeyExists (HKLM, 'SOFTWARE\Microsoft\Office\14.0\Registration\{90120000-001C-0C0A-0000-0000000FF1CE}');
end;



Saludos, ximo