Inicio > Foros
Resultados 1 al 17 de 17
Tema: Codigo Visual Basic para abrir un programa
-
07/12/2005, 18:17BeWild
- Fecha de ingreso
- 25 nov, 04
- Mensajes
- 6,967
Codigo Visual Basic para abrir un programa
Necesito que al hacer click en un botón se me abra un programa... tengo esto:
Código:Private Sub Command1_Click() End Sub
-
07/12/2005, 18:40El_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
Muy sencillo
Iniciado por Código
Private Sub Command1_Click()
Shell "ruta y nombre del programa en cuestión"
End Sub
-
07/12/2005, 18:44BeWild
- Fecha de ingreso
- 25 nov, 04
- Mensajes
- 6,967
Por ejemplo, sería:
Código:Private Sub Command1_Click() Shell c:\windows\iexplore.exe End Sub
-
07/12/2005, 18:47El_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
pues no 8O
mejor así: (las comillas son importantes)
Private Sub Command1_Click()
Shell "c:\archivos de programa\internet explorer\iexplore.exe"
End Sub
:lol: :lol:
-
07/12/2005, 19:26txakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
Otra solución para poder ejecutar cualquier archivo que tenga asociado un programa en windows es la siguiente.
En un módulo insertar lo siguiente:
Código:Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _ ByVal lpParameters As String, ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Sub Ejecutar(Archivo As String) Call ShellExecute(WinSeek.hWnd, "Open", Archivo, "", Trim$(Archivo), _ vbNormalFocus) End Sub
Código:Private Sub Command1_Click() Ejecutar "C:\Archivos de programa\Mozilla Firefox\firefox.exe" End Sub
-
07/12/2005, 19:58El_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
Esa solución es buena txakurra, pero yo quería ilustrar algo más simple, sin utilizar APIs
En todo caso para ejecutar un archivo asociado, por ejemplo reproducir un mp3 con el winamp o con el media player, siempre se puede hacer con Shell, poniendo el nombre del programa seguido del nombre de la canción, y con los parámetros adecuados, para que se reproduzca al momento por ejemplo, o se quede en pausa, etc
saludos
-
07/12/2005, 20:05BeWild
- Fecha de ingreso
- 25 nov, 04
- Mensajes
- 6,967
Venga otro reto y terminamos xDDD
Quiero que la accion se haga 10 segundos despues de darle al boton, es decir.
-Darle al boton
-Que se me abran Forms nuevos
-Que se espere 10 segundos
-Que se ejecute el IEXPLORE
¿Como lo haría?
-
07/12/2005, 20:30El_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
Vamos por partes
Para abrir un form (cargarlo): Load NombreFormulario
Para cerrarlo (descargarlo): Unload NombreFormulario
Para mostrarlo si está cargado pero oculto:
NombreFormulario.Show modo
el modo puede ser 0 ó 1 (1 es modal, es decir, se abre un form que no deja continuar la aplicación hasta que éste se haya cerrado)
Para esperar x segundos, hay muchas formas. Ahí va una:
Public Sub Esperar(ByVal numsec As Single)
Dim t1 As Single
t1 = timer + numsec
Do
DoEvents
Loop While t1 > timer
End Sub
numsec es el número de segundos, es decir tienes que llamarlo del modo Esperar(5) (por ejemplo)
Saludos
-
08/12/2005, 00:13txakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
Iniciado por El_Zorro
Esa solución es buena txakurra, pero yo quería ilustrar algo más simple, sin utilizar APIs
En todo caso para ejecutar un archivo asociado, por ejemplo reproducir un mp3 con el winamp o con el media player, siempre se puede hacer con Shell, poniendo el nombre del programa seguido del nombre de la canción, y con los parámetros adecuados, para que se reproduzca al momento por ejemplo, o se quede en pausa, etc
saludos
Iniciado por BeWild
Venga otro reto y terminamos xDDD
Quiero que la accion se haga 10 segundos despues de darle al boton, es decir.
-Darle al boton
-Que se me abran Forms nuevos
-Que se espere 10 segundos
-Que se ejecute el IEXPLORE
¿Como lo haría?
En un módulo:
Código:Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Sub Ejecutar(Archivo As String) Call ShellExecute(WinSeek.hWnd, "Open", Archivo, "", Trim$(Archivo), vbNormalFocus) End Sub
Código:Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long) Private Sub Command1_Click() Form2.Show 'Se muestra un form secundario llamado Form2 Sleep 10000 'Se esperan 10 segundos (10000 milisegundos) Ejecutar "C:\Archivos de programa\Internet Explorer\IEXPLORE.exe" 'Abre IE End Sub
-
08/12/2005, 09:19El_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
Iniciado por txakurra
Si ya, pero lo malo de ello es que se quiera distribuir el programa. Imagina que usas el Shell para abrir un MP3 con el Winamp. Luego otra persona quiere usar ese programa pero al no tener el winamp, no puede.
Y para lo de esperar 10 segundos, la solución que das está bien. Pero nuevamente para ese problema no veo necesidad de utilizar una librería externa, puede hacerse de forma evidente con un bucle do-loop y utilizando la función timer
Está bien esto de hacer pequeños programas VB en el foro. Se aprenden cosas. Podríamos ponernos retos (más complicados obviamente) e ir buscando soluciones entre todos.
Saludos
-
08/12/2005, 14:40BeWild
- Fecha de ingreso
- 25 nov, 04
- Mensajes
- 6,967
Muchas gracias a los dos... Luego lo pruebo a ver que tal
-
08/12/2005, 15:18Monkyo
- Fecha de ingreso
- 25 jun, 05
- Ubicación
- Mallén (Zaragoza)
- Mensajes
- 156
Hola a tod@s. Visto que aceptáis retos y que parece que sabéis de esto yo os voy a proponer uno a ver si sois tan amables de aceptarlo y resolverlo. Lo expongo:
Accedo a Internet mediante una conexión RTB y para evitar la acción de los dialers me protejo con Check Dialer. Resumiendo, mi operativa es esta
-Inicio Check Dialer (hay que hacerlo antes de conectarse a Internet.
-Inicio la conexión a Internet.
-Abro el Firefox
-Abro el Opera
-Abro el gestor de correo electrónico (Foxmail).
Siempre he pensado que podría tener un icono en el escritorio que me resumiese todas las operaciones a una. O sea, mediante Visual Basic hacer un icono en el escritorio que me inicie Check Dialer. Una vez cargado este programa (la línea de comando que diga que ya se ha cargado el programa es la que más me preocupa) que me siga abriendo los sucesivos.
¿Me podéis ayudar?.
Gracias.
-
09/12/2005, 12:52txakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
Iniciado por Monkyo
Hola a tod@s. Visto que aceptáis retos y que parece que sabéis de esto yo os voy a proponer uno a ver si sois tan amables de aceptarlo y resolverlo. Lo expongo:
Accedo a Internet mediante una conexión RTB y para evitar la acción de los dialers me protejo con Check Dialer. Resumiendo, mi operativa es esta
-Inicio Check Dialer (hay que hacerlo antes de conectarse a Internet.
-Inicio la conexión a Internet.
-Abro el Firefox
-Abro el Opera
-Abro el gestor de correo electrónico (Foxmail).
Siempre he pensado que podría tener un icono en el escritorio que me resumiese todas las operaciones a una. O sea, mediante Visual Basic hacer un icono en el escritorio que me inicie Check Dialer. Una vez cargado este programa (la línea de comando que diga que ya se ha cargado el programa es la que más me preocupa) que me siga abriendo los sucesivos.
¿Me podéis ayudar?.
Gracias.
-
09/12/2005, 19:36Monkyo
- Fecha de ingreso
- 25 jun, 05
- Ubicación
- Mallén (Zaragoza)
- Mensajes
- 156
Gracias paisano, espero tus enseñanzas.
-
09/12/2005, 20:26Jake
- Fecha de ingreso
- 20 ago, 05
- Ubicación
- Madrid
- Mensajes
- 444
Ostras lo que sabe la gente por aqui de VB 8O 8O , jejeje, y yo que por saber hacer una chuminadilla que sumaba dos numero, los dividia, los restaba.... ya me creia alguien, jejeje :wink:
-
01/03/2007, 12:25
A mi no me funciona
He intentado probar el codigo que nos propones y no me funciona.
Me responde un error 424, falta objeto.
A que se refiere?
Tengo que ajustar algo para que fincione la API
Iniciado por txakurra
Otra solución para poder ejecutar cualquier archivo que tenga asociado un programa en windows es la siguiente.
En un módulo insertar lo siguiente:
Código:Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _ (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _ ByVal lpParameters As String, ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Sub Ejecutar(Archivo As String) Call ShellExecute(WinSeek.hWnd, "Open", Archivo, "", Trim$(Archivo), _ vbNormalFocus) End Sub
Código:Private Sub Command1_Click() Ejecutar "C:\Archivos de programa\Mozilla Firefox\firefox.exe" End Sub
-
28/06/2007, 00:51
Solucion
Creo que he encontrado la solución a tu problema.
Done pone "winseek.hwnd" quitale el ".hwnd". A mi me ha funcionado. :wink:
Espero que te sirva
Powered by vBulletin® Version 4.2.5
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.
Traducción por vBulletin Castellano Copyright © 2025.
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.
Traducción por vBulletin Castellano Copyright © 2025.
AutoLinker v1.3 by Poker Forum