Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   como ejecutar archivo .msi (https://www.clubdelphi.com/foros/showthread.php?t=44508)

nosferatu177 07-06-2007 21:22:39

como ejecutar archivo .msi
 
hola a todos, solo haciendo la aclaracion, esta pregunta ya la habia formulado en otra seccion,solo q navegando en los foros creo q va en esta jeje:D, mi pregunta es: como puedo desde mi aplicacion mandar ejecutar el mysql-connector-odbc-3.51.14-win32, ya intente con
{$ifdef mswindows}
WinExec('..\Instalacion\mysql_odbc\mysql.msi', SW_SHOW);
{$endif}
ó
ShellExecute('msiexec /i "$INSTDIR\..\Instalacion\mysql_odbc\mysql.msi');
(cambie el nombre del archivo pa q fuera mas corto ;) )
pero no me funciona :(, agradeceria toda ayuda :o, gracias de antemano:D

jake 07-06-2007 22:41:07

Bueno , por lo que dices es parecido a lo que hice en una aplicación donde necesitaba detectar si estaba instalado el driver odbc de Visual foxprox, leia el registro si no estaba , entonces mandaba a ejecutar el VFPODBC.msi , por supuesto que mi aplicacion debia de esperar que terminase , eso se hace con una función que me bajé de trucomania , poniendo un .bat , así:
WinExecAndWait32('Exec.bat',0);
disculpa si no me explico .
nota:WinExecAndWait32 es la funcion

juanlaplata 08-06-2007 18:42:00

Código Delphi [-]
WinExec(PChar(path), SW_SHOW);
Creo que asi funciona.

jake 08-06-2007 18:51:22

si eso funciona bien, está claro que ese es el error de pq no debe de correr lo que nosferatu177 plantea pq el pone solamente el path si pchar , ahora bien aún así no se ejecutaría pq es un archivo msi el que intenta levantar desde su aplicación ,por ejemplo eso me pasó a mi y lo que hice fue ejecutar un archivo .bat el cúal contiene el nombre del archivo msi , además creo que winexec no espera que termine la otra aplicación , bueno a menos que se desee hacer eso

nosferatu177 08-06-2007 19:32:22

ejecutar
 
q onda chavos gracias por las aportaciones; como les comente ya lo intente con shellexecute y winexec para ese tipo de archivo asi:
ShellExecute(Form1.Handle,nil,'directorio..\mysql.msi',nil,nil,SW_NORMAL); o asi:
WinExec(PChar('directorio..\mysql.msi'),SW_SHOW);
y no funciona :( , jake podrias ser un poco mas especifico,te lo agradeceria mucho :) es q como q no entiendo eso del .bat; dentro del .bat pongo la instruccion para ejecutarlo?? y desde delphi ejecuto el .bat o q onda?:confused:; gracias:):)

PD no importa sino espera a q termine la otra aplicacion :)

roman 08-06-2007 19:39:35

Código Delphi [-]
ShellExecute(0, 'open', 'ruta\al\archivo.msi', nil, nil, SW_SHOW);

// Saludos

jake 08-06-2007 20:20:17

pues si está muy bien lo que mostró román ,y es más elegante pues no hay que hacer lo del exec.bat , que en fin,para que entiendas esta otra vía lo que hay que poner en el mismo es: directorio..\mysql.msi y más nada

Código Delphi [-]
WinExec(PChar(Exec.bat), SW_hide);


Saludos

nosferatu177 08-06-2007 21:09:28

ejecutar .msi
 
:D:)gracias por la ayuda, ya quedo!! y funciona con las 2 opciones :D:D


La franja horaria es GMT +2. Ahora son las 04:47:03.

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