Resultados 1 al 17 de 17

Tema: Codigo Visual Basic para abrir un programa

  1. BeWild
    BeWild está desconectado
    Usuario registrado CV
    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
    ¿Que pongo entre medias?

  2. El_Zorro
    El_Zorro está desconectado
    Usuario registrado CV
    Fecha de ingreso
    02 nov, 05
    Mensajes
    868
    Muy sencillo

    Cita Iniciado por Código
    Private Sub Command1_Click()

    Shell "ruta y nombre del programa en cuestión"

    End Sub
    saludos

  3. BeWild
    BeWild está desconectado
    Usuario registrado CV
    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
    No??

  4. El_Zorro
    El_Zorro está desconectado
    Usuario registrado CV
    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:

  5. txakurra
    txakurra está desconectado
    Usuario registrado CV
    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
    Y luego, en el botón o lo que quieras, mandas ejecutar el archivo o aplicación deseada (por ejemplo, Firefox):
    Código:
    Private Sub Command1_Click()
        Ejecutar "C:\Archivos de programa\Mozilla Firefox\firefox.exe"
    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.

  6. El_Zorro
    El_Zorro está desconectado
    Usuario registrado CV
    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

  7. BeWild
    BeWild está desconectado
    Usuario registrado CV
    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?

  8. El_Zorro
    El_Zorro está desconectado
    Usuario registrado CV
    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

  9. txakurra
    txakurra está desconectado
    Usuario registrado CV
    Fecha de ingreso
    05 feb, 05
    Ubicación
    ES
    Mensajes
    8,213
    Cita 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
    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.

    Cita 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?
    Aplicando mi anterior ejemplo y usando otra función de la API de windows.
    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
    En el form principal:
    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

  10. El_Zorro
    El_Zorro está desconectado
    Usuario registrado CV
    Fecha de ingreso
    02 nov, 05
    Mensajes
    868
    Cita 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.
    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.

    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

  11. BeWild
    BeWild está desconectado
    Usuario registrado CV
    Fecha de ingreso
    25 nov, 04
    Mensajes
    6,967
    Muchas gracias a los dos... Luego lo pruebo a ver que tal

  12. Monkyo
    Monkyo está desconectado
    Usuario registrado CV
    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.

  13. txakurra
    txakurra está desconectado
    Usuario registrado CV
    Fecha de ingreso
    05 feb, 05
    Ubicación
    ES
    Mensajes
    8,213
    Cita 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.
    "Manos a la obra señor Freeman, manos a la obra".

  14. Monkyo
    Monkyo está desconectado
    Usuario registrado CV
    Fecha de ingreso
    25 jun, 05
    Ubicación
    Mallén (Zaragoza)
    Mensajes
    156
    Gracias paisano, espero tus enseñanzas.

  15. Jake
    Jake está desconectado
    Usuario registrado CV
    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:

  16. Invitado

    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



    Cita 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
    Y luego, en el botón o lo que quieras, mandas ejecutar el archivo o aplicación deseada (por ejemplo, Firefox):
    Código:
    Private Sub Command1_Click()
        Ejecutar "C:\Archivos de programa\Mozilla Firefox\firefox.exe"
    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.

  17. Invitado

    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