Visual Basic - Abrir documento desde vb

Life is soft - evento anual de software empresarial
 
Vista:

Abrir documento desde vb

Publicado por Giovvani (2 intervenciones) el 07/06/2005 09:15:12
Que tal mi duda es la siguiente: es posible que desde vb yo pueda ejecutar un documento de word por ejemplo y lo abra en word ovio por ejemplo si tengo:
Archivo = commondialog.filename

y en archivo esta lo siguiente:

"c:\documento.doc"

y despues vb abra word para ver ese documento de antemano muchas gracias. Saludos
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:Abrir documento desde vb

Publicado por ArkDark (27 intervenciones) el 07/06/2005 09:44:49
Esto es una API lo pones tal cual en la sección general.

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


Esto es un boton que abre un common coge un fichero y se lo envia a la API para que esta lo abra.

Private Sub Command1_Click()
Dim archivo As String
Me.CommonDialog1.ShowOpen
archivo = Me.CommonDialog1.FileName
ShellExecute hwnd, "Open", archivo, "", App.Path, 1
End Sub


ArkDark
Existen 10 tipos de personas, las que saben binario y las que no.
( * ^_^ * )
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

no me sale

Publicado por Juanpe (19 intervenciones) el 07/06/2005 12:08:59
hola, a mi me interesa mucho esto, lo e puesto tal y como lo as puesto, y solo e modificado donde pone archivo y le e puesto la ruta entre comillas dobles ("c:\.....\archivo.txt") y no e modificado nada mas y se me abre la carpeta donde esta el archivo, entonces intento abrir otro archivo y siempre me abre el mismo, pero lo que me ace falta es que se abra del tiron sin que se me abra la carpeta, te lo agradeceria un monton si me resolvieses el problemilla, gracias de antemano
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:no me sale

Publicado por ArkDark (27 intervenciones) el 07/06/2005 12:31:06
No se si entendí bien lo que me dijistes.. pero voy a intentar ponerte todas las posiblidades que se me ocurran explicadas por paso. :D

La API siempre en todos los casos
En general pones la API
======================
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


1º Caso: En el formulario debe haber un commondialog y un boton

Private Sub Command1_Click()
Dim archivo As String
'Esto abre una caja de dialogo para elegir el archivo que quieras abrir.
Me.CommonDialog1.ShowOpen
'Esto guarda el nombre del archivo elegido en una variable.
archivo = Me.CommonDialog1.FileName
'Esto ejecuta el programa necesario para que se abra el archivo elegido.
ShellExecute hwnd, "Open", archivo, "", App.Path, 1
End Sub

Así tal cual te abre una caja de dialogo para que elijas tu el archivo que quieras abrir, sin modificar absolutamente nada. Asi puedes abrir muchos archivos de diferentes tipos dandole al boton y eligiendo el archivo deseado.

2º Caso: En el formulario debe haber un boton y una caja de texto.

Private Sub Command1_Click()
Dim archivo As String
archivo=me.text1.Text
'Esto ejecuta el programa necesario para que se abra el archivo.
ShellExecute hwnd, "Open", archivo, "", App.Path, 1
End Sub

Así tienes k poner la dirección completa del archivo en una caja de texto y darle al boton para abrir ese archivo.

3º Caso: En el formulario debe haber un boton

Private Sub Command1_Click()
Dim archivo As String
archivo="C:\...\...\documento.xxx"
'Esto ejecuta el programa necesario para que se abra el archivo.
ShellExecute hwnd, "Open", archivo, "", App.Path, 1
End Sub

En este último caso le asignas a la Variable archivo una dirección y cuando le das al boton solo abra ese archivo y ningun otro a no ser que declares la variable archivo en GENERAL y en otro lado del programa modifiques esa variable poniendole otra ruta distitna.

Todos estos codigos deberian funcionar tal cual añadiendo la API en general y tal como viene explicado con los controles necesarios sin cambiar nada.


Espero que te sirva.

ArkDark
Existen 10 tipos de personas, las que saben binario y las que no.
(*^_^*)
Galiza Zeive
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:no me sale...algo mas sencillo!!!

Publicado por miguel (1042 intervenciones) el 07/06/2005 16:51:39
Mira puedes hacerlo de la siguiente forma.
Private Sub cmdStatusFile_Click()
On Error GoTo Err_Handler

CommonDialog1.CancelError = True
Text1.Text = "" 'Aqui puedes asignarlo a una variable si lo deseas.

CommonDialog1.InitDir = "C:\MisDocumentos"
CommonDialog1.Filter = "Todos los Documentos de Word (*.doc)|*.doc"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
Text1.Text = CommonDialog1.FileName
Dim MyValue
MyValue = Shell("rundll32.exe url.dll, FileProtocolHandler " & Text1, vbMaximizedFocus)
End If
Exit Sub
Err_Handler:
If Err = 32755 Then
Text1.Text = ""
Text1.SetFocus
Else
MsgBox "An error has occurred! " & vbCrLf & vbCrLf & Err & ": " & Error & " ", vbExclamation
End If
End Sub
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

Te garantizo que funciona

Publicado por Dennis Baldeón (103 intervenciones) el 07/06/2005 18:46:23
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
Const SW_SHOWNORMAL = 1

Private Sub Command1_Click()

ShellExecute Me.hwnd, "open", "c:\windows\win.ini", 0&, 0&, SW_SHOWNORMAL

End Sub
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