¿Sabe alguien cómo llamar a un archivo flash.exe en un programa en vb6?
Gracias.
¿Sabe alguien cómo llamar a un archivo flash.exe en un programa en vb6?
Gracias.
Si solo quieres lanzar un .exe te deberia servir el comando Shell. Creo que es algo asi:
Shell "c:\flash.exe",vbNormal
Si lo quieres incrustado en tu programa es bastante mas complicado. Yo intentaria extraer el .swf con exe2swf y cargarlo en un objeto shockwave flash a ver si pita.
Saludos
Como lo indica pkj la forma mas correcta es mediante la API. De esta forma muestras tu archivo en una ventana externa.
Solamente acoto a la nota de pkj que antes de hacer el llamado a la API es necesario declararla al inicio de tu modulo, utilizando la siguiente linea:
Y para abrir el .exe:Código:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Integer, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Integer) As Integer
Código:
Dim Ruta As String = "C:\MiCarpeta\flash.exe" Shell(Ruta, AppWinStyle.NormalFocus) Else MsgBox "No se localizo el ejecutable" End If
Gracias por la corrección, compañero RoyMata, pero tengo que llevarte la contraria.
El ejemplo que puse es correcto (salvo que en lugar de vbNormal era vbNormalFocus). El tuyo sin embargo no lo es.
En primer lugar estás declarando la función ShellExecute y no la usas, usas la función Shell.
La función Shell es accesible por defecto en VB6 y no necesita declararse.
La función ShellExecute se usa para cosas mas "técnicas", como imprimir o lanzar ficheros con su programa asociado, como p.ej. abrir un .txt con el editor de texto asociado a esa extensión, aunque no sepamos cual es ni donde se encuentra.
En segundo lugar estás usando .NET y el comando IO.File.Exist no funciona en VB6.
Debemos tener en cuenta esto cuando preguntamos algo y también cuando respondemos. Si no lo hacemos acabaremos llenando el foro de respuestas incorrectas y confusas.
Muchas cosas son parecidas, pero en .NET hay nuevos comandos como IO y nuevas formas de hacer lo que ya hacíamos en VB6, y no se deben mezclar ambos lenguajes.
P.ej. en VB6 si pones los parámetros de una función entre paréntesis tienes que tener un recipiente donde recibir el resultado de la función.
Ejmp: Puedes hacer esto:
Shell Ruta, VbNormalFocus
o esto:
Respuesta = Shell (Ruta, VbNormalFocus)
pero no esto:
Shell (Ruta, VbNormalFocus)
En .NET sin embargo los paréntesis son obligatorios aunque no esperemos respuesta, o llamemos a una Sub, que no devuelve parámetros.
Ejmp:
MsgBox("Texto del mensaje")
Todo lo dicho es un intento de colaborar, con fines educativos y sin mala intención. Espero no haber parecido muy severo
Saludos y recordad ser buenos.
Mis disculpas pkj y demas colegas.
Es el problema cuando uno esta emergido en varias cosas a la vez, estaba en el foro de VB6 y en el de VB.NET a la vez y se me cruzaron los cables!!!!
Tienes toda la razon, la forma como planteas la solucion es la correcta
Muchísimas gracias a los dos. Voy a probarlo en estas minivacaciones, del 6 al 9 de diciembre, y os informo si lo consigo y volver a agradecer vuestra ayuda.