Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/08/2007, 01:35
Avatar de Taribo007
Taribo007
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.338
Antigüedad: 16 años, 8 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