Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Iniciar una aplicación

Estas en el tema de Iniciar una aplicación en el foro de Visual Basic clásico en Foros del Web. Hola. Estoy creando una aplicación en Visual Basic en la que quiero que al hacer click se inicie una otra aplicación. He intentado hacerlo utilizando ...
  #1 (permalink)  
Antiguo 19/08/2007, 10:47
 
Fecha de Ingreso: enero-2007
Mensajes: 318
Antigüedad: 17 años, 10 meses
Puntos: 7
Iniciar una aplicación

Hola.

Estoy creando una aplicación en Visual Basic en la que quiero que al hacer click se inicie una otra aplicación. He intentado hacerlo utilizando el siguiente código, pero no me aclaro.

Cita:
Iniciado por VisualGuallabo Ver Mensaje
Esta es una función que nos permite ejecutar Cualquier Archivo siempre y cuando existe un programa para abrir dicho archivo.
Ademas ejecuta los .exe y abre directorios o unidades.
Ejemplo
Ponemos Direccion="D:/" ABRIRA UNA BENTANA con el contenido de D
Ponemos Direccion="D:/PEPE" ABRIRA UNA BENTANA con el contenido de pepe
Ponemos Direccion="D:/PEPE/doci.doc" ABRIRA doci.doc sin existe un programa para abrirlo como es elWord.

Escriba este codigo en el formulario en General:

Public Sub EjecutarArchivos(Direccion As String)
On Error GoTo error
ret = Shell("rundll32.exe url.dll,FileProtocolHandler " & (Direccion), 1)
Exit Sub
error: MsgBox Err.Description, vbExclamation, "Error de Ejecución"
End Sub

para ejecutar solo tenemos que poner
La función
ejemplo
EjecutarArchivos "c:\nota.txt"
Por favor, echadme una mano
  #2 (permalink)  
Antiguo 19/08/2007, 11:59
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 9 meses
Puntos: 19
Re: Iniciar una aplicación

Hola,si queres ejecutar un archivo .exe se usa el shell.

por ejemplo:

Código:
Private Sub Command1_Click()
Shell "c:\hola.exe", vbNormalNoFocus
End Sub
y si queres abrir un .doc , .jpg , .txt o cualquier archivo con su programa que lo gestiona se usa la api shellExecute.un ejemplo facil:

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

Private Sub Command1_Click()
ShellExecute hwnd, "open", "C:\documento.doc", vbNullString, vbNullString, 1
End Sub
saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #3 (permalink)  
Antiguo 19/08/2007, 12:30
 
Fecha de Ingreso: enero-2007
Mensajes: 318
Antigüedad: 17 años, 10 meses
Puntos: 7
Re: Iniciar una aplicación

Muchas gracias seba123neo.
  #4 (permalink)  
Antiguo 20/08/2007, 01:35
Avatar de Taribo007  
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 17 años, 3 meses
Puntos: 18
Re: Iniciar una aplicación

Y este codigo, tambien usando sehell execute, te permite abrir cualquier archivo controlando cualquier error:

'Constantes de retorno de error para ShellExecute

Public Const ERROR_FILE_NOT_FOUND = 2&
Public Const ERROR_PATH_NOT_FOUND = 3&
Public Const ERROR_BAD_FORMAT = 11&
Public Const SE_ERR_ACCESSDENIED = 5
Public Const SE_ERR_ASSOCINCOMPLETE = 27
Public Const SE_ERR_DDEBUSY = 30
Public Const SE_ERR_DDEFAIL = 29
Public Const SE_ERR_DDETIMEOUT = 28
Public Const SE_ERR_DLLNOTFOUND = 32
Public Const SE_ERR_FNF = 2
Public Const SE_ERR_NOASSOC = 31
Public Const SE_ERR_OOM = 8
Public Const SE_ERR_PNF = 3

'Declaración de ShellExecute
Public 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

Public Const SW_SHOWNORMAL = 3


Public Sub Abrir_Archivo(ElArchivo As String)

'Abre el archivo
Select Case ShellExecute(hwnd, "open", ElArchivo, vbNullString, _
vbNullString, SW_SHOWNORMAL)

'Retorno de ShellExecute

Case 0
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"Fuera de memoria o de recursos ", vbCritical, "ERROR EN LA APERTURA"
Case ERROR_BAD_FORMAT
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"Formato inválido de archivo", vbCritical, "ERROR EN LA APERTURA"
Case SE_ERR_ACCESSDENIED
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"Acceso denegado al intentar abrir el archivo", vbCritical, "ERROR EN LA APERTURA"
Case SE_ERR_ASSOCINCOMPLETE
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"Extensión incompleta o inválida del nombre del archivo", vbCritical, "ERROR EN LA APERTURA"
Case SE_ERR_DDEBUSY
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"DDE ocupado", vbCritical, "ERROR EN LA APERTURA"
Case SE_ERR_DDEFAIL
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"Fallo en la transacción DDE", vbCritical, "ERROR EN LA APERTURA"
Case SE_ERR_DDETIMEOUT
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"Petición DDE fuera de tiempo", vbCritical, "ERROR EN LA APERTURA"
Case SE_ERR_DLLNOTFOUND
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"DLL no encontrada", vbCritical, "ERROR EN LA APERTURA"
Case ERROR_FILE_NOT_FOUND, SE_ERR_FNF
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"Archivo no encontrado", vbCritical, "ERROR EN LA APERTURA"
Case SE_ERR_NOASSOC
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"El archivo no está asociado a ninguna aplicación", vbCritical, "ERROR EN LA APERTURA"
Case SE_ERR_OOM
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"Fuera de memoria", vbCritical, "ERROR EN LA APERTURA"
Case ERROR_PATH_NOT_FOUND, SE_ERR_PNF
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"Path no encontrada", vbCritical, "ERROR EN LA APERTURA"
Case SE_ERR_SHARE
MsgBox "Error en la apertura del archivo:" & vbCrLf & _
"Sharing violation", vbCritical, "ERROR EN LA APERTURA"
End Select

End Sub

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:26.