PDA

Ver la Versión Completa : Desinstalar de forma silenciosa en inno setup o en delphi


teecweb
05-03-2013, 00:21:12
Holas..
Quisera saber como desinstalar en forma silenciosa es decir que no me apareza ningun mensaje en inno setup o en quizas en delphi ..gracias por sus respuestas

ecfisa
05-03-2013, 03:58:19
Holas..
Quisera saber como desinstalar en forma silenciosa es decir que no me apareza ningun mensaje en inno setup o en quizas en delphi ..gracias por sus respuestas
Hola teecweb.

Revisa estos enlaces:

Setup Command Line Parameters (http://www.jrsoftware.org/ishelp/index.php?topic=setupcmdline)
Uninstaller Command Line Parameters (http://www.jrsoftware.org/ishelp/topic_uninstcmdline.htm)
Is it possible to do a silent install without using the /SILENT or /VERYSILENT command-line parameters? (http://www.jrsoftware.org/isfaq.php#silent)


Saludos.

teecweb
05-03-2013, 14:48:10
Gracias por su respuesta,,eh revisado esos links..pero en realidad cuando al desinstalar por shellexec o exec llamando el ejecutable unins000 me aparece esa ventana de confirmacion al desinstalar en la forma visual que no deberia aparecer,,estare al tanto de sus prontas respuestas ..gracias..:D

ecfisa
05-03-2013, 15:51:51
Gracias por su respuesta,,eh revisado esos links..pero en realidad cuando al desinstalar por shellexec o exec llamando el ejecutable unins000 me aparece esa ventana de confirmacion al desinstalar en la forma visual que no deberia aparecer,,estare al tanto de sus prontas respuestas ..gracias..:D
Hola teecweb.

¿ Y como estas llamando a la función ShellExecute ? ¿ Podrías poner el código textual ?

Saludos.

nlsgarcia
05-03-2013, 16:59:30
teecweb,


...Quisera saber como desinstalar en forma silenciosa...


Revisa este código:

...
FileName := ExtractFileDir(path) + '\Desinstalar' + '\unins000.exe' + ' /VERYSILENT' + ' /SUPPRESSMSGBOXES';
DesistalarItem(FileName);

El código anterior utiliza los parámetros /VERYSILENT y /SUPPRESSMSGBOXES para una desinstalación automática.

El detalle de los parámetros lo puedes encontrar en el link: http://www.jrsoftware.org/ishelp/index.php?topic=uninstcmdline

El link mencionado fue sugerido anteriormente en el Msg #2

Espero sea útil :)

Nelson.

teecweb
05-03-2013, 18:04:28
este es el filename :

FileName:=ExtractFileDir(path)+'\Desinstalar\'+'unins000.exe';
procedure desistalarItem(const FileName: string);
var
ErrorCode: Integer;
begin
if not Exec(FileName,'', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode) then
begin
MsgBox('DeinitializeSetup:' #13#13 'Execution of ''' + FileName + ''' failed. ' + SysErrorMessage(ErrorCode) + '.', mbError, MB_OK);
end
end;

Entonces cada de vez que ejecuto unins000.exe sale el mensaje de confirmacion predefinido por inno setup preguntando si desea desinstalar ..lo que requiero es que no salga ese mensaje de confirmacion..gracias por sus respuestas.

teecweb
05-03-2013, 18:24:11
Con respecto al mensaje de nlsGarcia al colocar esos comandos al costado de la ruta lo toma como todo fuera una ruta.

FileName:=ExtractFileDir(path)+'\Desinstalar\'+'unins000.exe' + ' /VERYSILENT' + ' /SUPPRESSMSGBOXES';

y sale error 'El nombre del directorio no existe'..gracias por tu respuesta

ecfisa
05-03-2013, 18:51:48
Hola teecweb.

Proba de este modo:

...
ShellExecute(Handle,
'open',
PChar(FileName), // uninst...
'/SILENT',
nil,
SW_SHOWNORMAL);
...

Todos los detalles sobre ShellExecute en este enlace: ShellExecute function (http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153%28v=vs.85%29.aspx).

Saludos.

nlsgarcia
05-03-2013, 20:02:47
teecweb,


...al colocar esos comandos al costado de la ruta lo toma como todo fuera una ruta...


Revisa este código:

procedure DesistalarItem(const FileName: string);
var
ErrorCode : Integer;
Param : String;

begin
Param := ' /VERYSILENT /SUPPRESSMSGBOXES';
if not Exec(FileName,Param, '', SW_SHOW, ewWaitUntilTerminated, ErrorCode) then
begin
MsgBox('DeinitializeSetup:' #13#13 'Execution of ''' + FileName + ''' failed. ' + SysErrorMessage(ErrorCode) + '.', mbError, MB_OK);
end
end;

El código anterior incluye los parámetros de Desinstalación Automática en Inno Setup en la Función Exec justo antes de la ejecución del programa de Uninstall.

Espero sea útil :)

Nelson.

teecweb
06-03-2013, 05:29:19
los comandos funcionaron muy bien