Visual Basic - ejecutar archivo no EXE

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

ejecutar archivo no EXE

Publicado por joseluis (24 intervenciones) el 07/12/2007 00:30:09
hola mi pregunta es la siguiente, alguien sabe como hacer para ejecutar un archivo que sea de extension diferente a EXE? es decir se que se puede usar el comando shell para abrir EXEs pero yo quiero que se abra por ejemplo un archivo de texto que está en el disco o bien una pagina web que tambien está guardada en el disco por ej. Sabe alguien como se hace eso??. Saludos. Desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ejecutar archivo no EXE

Publicado por Richard Montero (25 intervenciones) el 07/12/2007 00:49:07
José Luis:

Podés hacerlo de la siguiente manera:

En tu proyecto create un módulo, y copiate las siguientes instrucciones:

Option Explicit
Public Const MAX_FILENAME_LEN = 260

Public Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long

Sub AbrirArchivo(sFile)
Dim Arch As String
Dim i As Integer, s2 As String
'Verifica si existe el archivo
If Dir(sFile) = "" Or sFile = "" Then
MsgBox "Archivo no encontrado!", vbCritical
Exit Sub
End If
'Crea un buffer
s2 = String(MAX_FILENAME_LEN, 32)
'recupera el nombre del ejecutable asociado con ese archivo
i = FindExecutable(sFile, vbNullString, s2)
If i > 32 Then
Arch = Left$(s2, InStr(s2, Chr$(0)) - 1)
'Abre el archivo
Shell Arch & " " & Chr(34) & sFile & Chr(34), vbMaximizedFocus
Else
MsgBox "No existe una aplicacion relacionada con este archivo !"
End If

End Sub

'**************************************************
'Luego desde un formulario llamá la función AbrirArchivo de la siguiente manera:
Por ejemplo podés colocar en un botón la siguiente isntrucción

Private Sub Command1_Click()
AbrirArchivo "C:NombreArchivo.XLS"
End Sub

El archivo puede ser TXT, XLS, DOC, ext.

Saludos,
Richard
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ejecutar archivo no EXE

Publicado por ivan (1039 intervenciones) el 07/12/2007 17:29:47
Algo mas sencillo:

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()
Dim lRet As Long, sArchivo As String
sArchivo = "RutayNombreDelArchivoConExtension"
lRet = ShellExecute(Me.hwnd, "Open", sArchivo, "", "C:", 1)
End Sub

Abre cualquier archivo con extensión txt, doc, xls, gif, pdf, htm, etc.. etc, es decir cualquier archivo directamente ejecutable, igualito que si hicieras doble clic sobre él.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar