Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Averiguar si está instalado WINZIP en un PC (https://www.clubdelphi.com/foros/showthread.php?t=37197)

Jose Manuel 06-11-2006 17:19:14

Averiguar si está instalado WINZIP en un PC
 
Hola quisiera saber como puedo averiguar si en el PC que corre un programa hecho en Delphi6, tiene instalado el WINZIP.

La aplicación tiene que llamar al WINZIP, mediante la siguiente instrucción:
Código:

ShellExecute(Handle, 'Open', 'WinZip32.exe', PCHAR(params),
PCHAR(dir_exe), SW_NORMAL);

y quisiera saber de que forma puedo averiguar antes si está instalado.

Un saludo.
Jose Manuel

roman 06-11-2006 17:32:13

Pues la misma llamada te dirá si está o no instalado. Consulta la documentación de ShellExecute, si te devuelve un código menor o igual que 32 quiere decir que ocurrió algún error y actúas en consecuencia.

// Saludos

Jose Manuel 06-11-2006 19:18:39

Gracias por la ayuda, ahora necesito saber como puedo averiguar el Path del Winzip32.exe, pues quiero ejecutar esta instrucción:

Código Delphi [-]
   IF ShellExecute(Handle, 'Open', PCHAR(cFileName),
            PCHAR(params), PCHAR(dir_exe), SW_NORMAL)  <= 32 then
             Application.MessageBox('Error: no se ha podido actualizar el fichero',
             'Error', MB_ICONEXCLAMATION);
en la cual cFileName debe tener el PATH donde está instalado el winzip32.exe, por ejemplo: cFileName := 'C:\Archivos de programa\WinZip\WINZIP32.EXE';

Un saludo para todos.

Jose Manuel.

dec 07-11-2006 00:26:25

Hola,

José Manuel, si lo que quieres es trabajar con archivos comprimidos desde Delphi: comprimir archivos, descomprimirlos, acceder a su contenido, etc., debes saber que cuentas con componentes que harán innecesario que WinZip esté o no instalado en el sistema. Unos muy buenos, gratuitos y de código abierto son los Turbo Power Abbrevia.

Jose Manuel 07-11-2006 12:54:40

Hola, quiero saber el PATH del Winzip, porqué estoy utilizando la siguiente instrucción para actualizar el ejecutable. Ya tengo instalado en mi aplicación un componente zip, pero para actualizar el ejecutable, es necesario hacerlo con una aplicación externa, pues primero se cierra el ejecutable y se activa la instrucción, hay un hilo en este foro "actualización aplicaciones" donde explico como lo hago.

La instrucción funciona correctamente, siempre que el WINZIP esté instalado en 'C:\Archivos de programa\WinZip\WINZIP32.EXE' pero mejor sería asegurarse donde está realmente instalado.

He visto en Internet un script, que hace esto, no sé si sabré adaptarlo a Delphi6.


Código:

**
*    Script:  findZip.js
*    Purpose:  Finds the path of WinZip if present on yoursystem.
*    Author:  Daren Thiel (converted to js from newsgroup post).
*    Date:    16 May 1999
*    Web:      http://www.winscripter.com
*    Note:    Rename this script findZip.js
*    Copyright 1999 Daren Thiel **/
// Create a shell objectvar
ws = new ActiveXObject( "WScript.Shell" );
// Store the registry key we are looking for in a variable.
// You can also plug this value directly into regRead()
var key = "HKCR\\WinZip\\shell\\open\\command\\";
// Find the value stored for this key.
// If you get an error here you probably don't have
 WinZip.var zip = ws.regRead( key );
// The key is store with a '%1' at the end.  We should
// strip this off to get the path to winzip.var
zip = zip.substring( 0, zip.indexOf( " " ) );
// Tell them what you found.
WScript.Echo( zip );

Un saludo.
Jose Manuel.


La franja horaria es GMT +2. Ahora son las 08:24:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi