PILO escribió:
> Angel un pequeño ejemplo de como se ejectua
> utilizo esto y no funciona shellExecute("winrar")
Es preferible que utilices la función que abajo te muestro:
Execute(cFile, cDir, lWait) ---> Ejecuta un PROCESO externo.
Esta función recibe tres parametros:
cFile -> Nombre de archivo a ejecutar.
cDir -> Directorio de comienzo (por defecto, el de la ruta del ejecutable
lWait -> Si verdadero (.T.), no devuelve el control a la aplicación
hasta que termine el proceso.
Retorna:
<hProcess | nExitCode>
Handle al proceso cuando lWait es falso, y código de salida del proceso
en caso contrario
Módulo:
Util.c
Ver también:
ShellExecute, ShellExecuteEx, WinExec
Te pongo un ejemplo de lo que podrías hacer con esta función:
Execute("C:ArchivoComprimido.RAR","C:",.T.)
Esto lo que haría es:
1º Si Windows tiene asociados los archivos de tipo .RAR a algun programa
(como por ejemplo WinRar) llamaría a este y abriría automáticamente el
archivo "ArchivoComprimido.RAR"
2º Si windows no conoce este tipo de archivos, no ejecutaría nada y
retornaría un error de apertura.
Básicamente esto haría lo mismo que si en el explorador de WIndows, te
situas encima de un archivo .RAR y haces doble click en el. (Suponiendo
que se llamara a la función en el ejemplo que te muestro arriba).
P.D. Esto no se puede hacer, ShellExecute("winrar") porque:
- Winrar a secas, no es un ejecutable. Winrar.exe si lo és.
- Si especificas únicamente 'winrar', supongo que lo buscará en los PATH
del sistema.
- Precisamente, lo bueno de esta función no es llamar al programa sino
directamente AL ARCHIVO QUE QUIERES EJECUTAR y así te ahorras problemas
de donde está la aplicacion X o la aplicacion Y, pues quizas el usuario
no utiliza WinRar y utiliza WinZip y ya tu aplicación, no funcionaría.
De hecho y para salir de problemas, si Execute devuelve error, puedes
mostrar sugerentemente algo como: "No dispone de la aplicación adecuada
para abrir los archivos de tipo .RAR" y te libras de problemas.
Espero que te aclares
