Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ejecutar el desinstalador de cada software instalador en delphi (https://www.clubdelphi.com/foros/showthread.php?t=82492)

teecweb 12-03-2013 17:09:32

ejecutar el desinstalador de cada software instalador en delphi
 
Holas tengo un problemas yo quiero ejecutar el desistalador (unis.exe)de cada software instalado ..claro que cada software tiene diferente nombre el .exe que desinstalar y a veces se encuentra dentro de una carpeta o fuera..ojala tenga alguna solución:rolleyes: gracias

roman 12-03-2013 17:26:14

No estoy seguro de entender lo que buscas. Pero me parece que lo que tienes que hacer es buscar en el registro de Windows (programáticamente, claro). La información de desinstalación está en HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall y en HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall. Tendrías que buscar la cadena UninstallInstring.

// Saludos

maeyanes 12-03-2013 17:30:06

Hola...

Busca en el registro de Windows. La clave a buscar es: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall. Ahí están listadas todas las aplicaciones que se han instalado. Para más información: Uninstall Registry Key (Windows).



Saludos...

P.D. Vaya, en lo que escribía el mensaje ya roman había contestado... :D

teecweb 12-03-2013 18:16:12

Gracias por sus respuestas..si justamente habia encontrado sobre UninstallString claro que necesito recuperar el valor de este.. este codigo es para un instalador de innosetup
bueno esto es lo que eh encontrado en la documentacion

if RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\Unnistall') then
begin
\\ entonces como haria para recuperar el valor de UninstallString
end;
end;

gracia por sus respuestas:D

roman 12-03-2013 18:18:16

¿Quieres conocer este valor desde Delphi o desde un script de InnoSetup?

// Sludos

teecweb 12-03-2013 18:33:54

desde inno setup tiene el lenguaje parecido a delphi

roman 12-03-2013 19:02:37

Bueno, en la ayuda de InnoSetup tienes la respuesta:

RegQueryStringValue

// Saludos

teecweb 12-03-2013 20:59:07

Holas gracias por tu respuesta.
quisiera saber que debo poner en el tercer y cuarto parametro...gracias:D
Código Delphi [-]
[code]
procedure InitializeWizard();
var
  Country: String;
begin
  if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\Unnistall','', Country) then
  begin
    // Successfully read the value
    MsgBox('Your country: ' + Country, mbInformation, MB_OK);
  end
  else
  begin
   MsgBox('Your country: ' , mbInformation, MB_OK);
    
  end;
end;

maeyanes 12-03-2013 21:04:08

Hola...

En la ayuda de la función viene indicado que es cada parámetro:

Código Delphi [-]
function RegQueryStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean;

Pascal Scripting: RegQueryStringValue


Saludos...

roman 12-03-2013 21:05:14

Yo creo que sería así:

Código Delphi [-]
var
  UninstallString: String;

begin
  RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\Unnistall', 'UninstallInstring', UninstallInstring);
end;

// Saludos

teecweb 12-03-2013 21:08:31

Eh puesto asi y retorna vacio es decir entra al else :rolleyes:
Código Delphi [-]
[code]
procedure InitializeWizard();
var
  Country: String;
begin
  if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\MICROSOFT\WINDOWS\UNNISTALL\MozillaMaintenanceService','UninstallString', Country) then
  begin
    // Successfully read the value
    MsgBox('Your country: ' + Country, mbInformation, MB_OK);
  end
  else
  begin
   MsgBox('Your country: ' , mbInformation, MB_OK);
    
  end;
end;

roman 12-03-2013 21:12:12

La clave está incompleta:

SOFTWARE\MICROSOFT\WINDOWS\UNNISTALL\MozillaMaintenanceService

Falta CurrentVersion después de Windows y sobra esa N.

// Saludos

teecweb 12-03-2013 21:19:32

GRACIAS SI FUNCIONO
Código Delphi [-]

procedure InitializeWizard();
var
  Country: String;
begin
  if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL\MozillaMaintenanceService\','UninstallString', Country) then
  begin
    // Successfully read the value
    MsgBox('Your country: ' + Country, mbInformation, MB_OK);
  end
  else
  begin
   MsgBox('Your country: ' , mbInformation, MB_OK);
    
  end;
end;

teecweb 13-03-2013 00:03:10

Holas quisiera saber como seria en windows7 porque la ruta anterior no reconoce..gracias por su respuesta

roman 13-03-2013 17:40:47

Pues supongo que dependerá de lo que tengas instalado. Yo tengo Windows 7 y sí que existe la clave:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MozillaMaintenanceService

También podría depender del uso de mayúsculas o minúsculas, aunque esto lo desconozco.

// Saludos


La franja horaria es GMT +2. Ahora son las 21:51:26.

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