Inicio > Foros
Resultados 1 al 17 de 17
Tema: Codigo Visual Basic para abrir un programa
-
07/12/2005, 19:17Usuario registrado CVBeWild
- 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:
¿Que pongo entre medias?Código:Private Sub Command1_Click() End Sub
-
07/12/2005, 19:40Usuario registrado CVEl_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
Muy sencillo
saludos
Iniciado por Código
Private Sub Command1_Click()
Shell "ruta y nombre del programa en cuestión"
End Sub
-
07/12/2005, 19:44Usuario registrado CVBeWild
- Fecha de ingreso
- 25 nov, 04
- Mensajes
- 6,967
Por ejemplo, sería:
No??Código:Private Sub Command1_Click() Shell c:\windows\iexplore.exe End Sub
-
07/12/2005, 19:47Usuario registrado CVEl_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, 20:26Usuario registrado CVtxakurra
- 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:
Y luego, en el botón o lo que quieras, mandas ejecutar el archivo o aplicación deseada (por ejemplo, Firefox):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
Con este ejemplo lo que se hace es ordenar al S.O. a ejecutar el archivo indicado. Para mi gusto es mucho más eficaz que el Shell.Código:Private Sub Command1_Click() Ejecutar "C:\Archivos de programa\Mozilla Firefox\firefox.exe" End Sub
-
07/12/2005, 20:58Usuario registrado CVEl_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, 21:05Usuario registrado CVBeWild
- 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, 21:30Usuario registrado CVEl_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, 01:13Usuario registrado CVtxakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
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.
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
Aplicando mi anterior ejemplo y usando otra función de la API de windows.
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:
En el form principal: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, 10:19Usuario registrado CVEl_Zorro
- Fecha de ingreso
- 02 nov, 05
- Mensajes
- 868
Eso está claro. De todas formas para reproducir sonidos no es necesario usar ningún programa externo, yo para los sonidos en mis juegos, o simplemente para reproducir midis o mp3 desde VB utilizo o bien los controles MCI a través de las funciones de la librería WinMM (especialmente sndPlaySoundA, mciSendStringA o mciSendCommandA), o bien el multimedia control, que puede dar más problemas de compatibilidad al pasar de un pc a otro si no está bien registrado el ocx o no es coincidente.
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, 15:40Usuario registrado CVBeWild
- Fecha de ingreso
- 25 nov, 04
- Mensajes
- 6,967
Muchas gracias a los dos... Luego lo pruebo a ver que tal
-
08/12/2005, 16:18Usuario registrado CVMonkyo
- 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, 13:52Usuario registrado CVtxakurra
- Fecha de ingreso
- 05 feb, 05
- Ubicación
- ES
- Mensajes
- 8,213
"Manos a la obra señor Freeman, manos a la obra".
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, 20:36Usuario registrado CVMonkyo
- Fecha de ingreso
- 25 jun, 05
- Ubicación
- Mallén (Zaragoza)
- Mensajes
- 156
Gracias paisano, espero tus enseñanzas.
-
09/12/2005, 21:26Usuario registrado CVJake
- 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, 13:25Invitado
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:
Y luego, en el botón o lo que quieras, mandas ejecutar el archivo o aplicación deseada (por ejemplo, Firefox):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
Con este ejemplo lo que se hace es ordenar al S.O. a ejecutar el archivo indicado. Para mi gusto es mucho más eficaz que el Shell.Código:Private Sub Command1_Click() Ejecutar "C:\Archivos de programa\Mozilla Firefox\firefox.exe" End Sub
-
28/06/2007, 01:51Invitado
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.


