Ver la Versión Completa : como ejecutar archivo .msi
nosferatu177
07-06-2007, 21:22:39
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
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
WinExec(PChar(path), SW_SHOW);Creo que asi funciona.
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
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
ShellExecute(0, 'open', 'ruta\al\archivo.msi', nil, nil, SW_SHOW);
// Saludos
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
WinExec(PChar(Exec.bat), SW_hide);
Saludos
nosferatu177
08-06-2007, 21:09:28
:D:)gracias por la ayuda, ya quedo!! y funciona con las 2 opciones :D:D
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.