Visual Basic - Abrir PDF desde VB

Life is soft - evento anual de software empresarial
 
Vista:

Abrir PDF desde VB

Publicado por Fran Ortiz (13 intervenciones) el 29/04/2014 11:18:18
Buenas , antes de nada decir que ya e mirado los post de aqui y de 500 sitios mas sobre el tema.
En todos o casi todos coinciden en lo mismo :

1
2
3
4
5
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 Me.hwnd, "open", "c:\nombres.txt", "", "", 4
End Sub


pero ami esa funcion no me va de ninguna manera, incluso cambiando el hwnd por handle como en muchos sitios e leido.

Uso VB. net, si alguien fuera tan amable de orientarme a otra solución, es para una aplicacion que e ehco de socios en la cual guardar los documentos en la ficha de cada socio y luego quiero abrirlos desde la misma con su ruta. PDF , DOC, pero principalmente PDF.

Un cordial saludo.
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
sin imagen de perfil

Abrir PDF desde VB

Publicado por Pico (114 intervenciones) el 29/04/2014 15:48:36
Tal y como lo tienes dudo que te funcione. ShellExecyteA espera los parámetros que le pasas en ascii y .net funciona siempre en unicode.

En .net es más bonito que uses la clase Process.
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
sin imagen de perfil

Abrir PDF desde VB

Publicado por Diego (34 intervenciones) el 30/04/2014 16:26:39
Dim Ruta as String = "C:\a.pdf"

Shell("rundll32.exe url.dll,FileProtocolHandler " & Ruta, AppWinStyle.MaximizedFocus)
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

Abrir PDF desde VB

Publicado por Fran Ortiz (13 intervenciones) el 30/04/2014 21:06:01
Me he pegado todo el día buscando y probando por que esa no me va , encontré una muy buena y simple aquí la dejo para el que la necesite.

A mi me va en VB. net

Hay que definir:

Imports System.Diagnostics

y luego desde el botón llamar a este proceso:

Process.Start("c:\doc\manual.docx")

o el archivo que se quiera, lo he probado con Docx, pdf, exxel, jpg. no me a dado por probar que haria si no tubiera el programa instalado pues te los abre con sus respectivos programas como si le dieras doble click directamente.

Un saludo.
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
sin imagen de perfil

Abrir PDF desde VB

Publicado por Pico (114 intervenciones) el 30/04/2014 21:26:07
Pico dijo :

29/04/2014 15:48:36
Tal y como lo tienes dudo que te funcione. ShellExecyteA espera los parámetros que le pasas en ascii y .net funciona siempre en unicode.

En .net es más bonito que uses la clase Process.

A veces me pregunto para qué me tomo la molestia de contestar,.

ShellExecuteA tal y como lo tienes es imposible que te funciones porque espera que los datos que le pases estén en ascii. La próxima vez que quieras usar una función del windows sin preocuparte de cómo van los parámetros declara la función acabada en W o sin nada, o sea ShellExecuteW o ShellExecute.

A ver si me pregunto otra vez para qué leches contesto nada.
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

Abrir PDF desde VB

Publicado por Fran Ortiz (13 intervenciones) el 01/05/2014 15:00:15
Si te ley pero como no conocía la clase Process tuve que buscarla :) ahy deje con el imports por si alguien le pasase lo mismo que ami que le sea mas fácil solucionarlo.

Gracias nuevamente.
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
sin imagen de perfil

Abrir PDF desde VB

Publicado por Pico (114 intervenciones) el 01/05/2014 16:18:34
Ah, con lo de "me he pegado todo el día buscando y probando" te referías a Process.

Cuando busques algo de .net pon en el google msdn y ese algo. Si pones msdn process ya en los enlaces te sale a qué espacio de nombres pertenece, y entrando en la página del enlace te sale la documentación de microsoft sobre esa clase, con todas sus propiedades, métodos, eventos, aclaraciones, explicaciones, ejemplos... poco más puedo añadir yo.
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