Arpire un file .doc o un .pdf

lunedì 24 luglio 2006 - 16.16

Jorghe55 Profilo | Newbie

Salute a tutti, sapete la sintassi per aprire un file .doc o un .pdf all'interno di un programma fatto con VB6??
Grazie a tutti...

Brainkiller Profilo | Guru

>Salute a tutti, sapete la sintassi per aprire un file .doc o
>un .pdf all'interno di un programma fatto con VB6??

All'interno in che senso ? dal programma VB6 aprire un Doc.
Se è questo che vuoi basta che chiami la funzione Shell/ShellExecute e passare il nome del file. Si aprirà automaticamente con il programma associato all'estensione.
CIao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

Jorghe55 Profilo | Newbie

Purtroppo no, in VB6 la Shell serve per avviare un programma,non un file.
Infatti se provo ad avviare un programma *.exe lo apre tranquillamente, se apro invece un .doc o un .pdf mi solleva l'errore:

Errore di run-time '5':

Chiamata di routine o argomento non valido


Per la cronaca la chiamata shell ho provato a farla sia:

Shell("<percorso>\guida.doc")

Sia assegnando ad una variabile la shell stessa:

Var = Shell("<percorso>\guida.doc")

Qualche idea?

lucios Profilo | Newbie

Prova così:

dim ret
ret=Shell("<percorso di Word> <spazio> <percorso del file .doc da aprire>", vbNormalFocus)

Ciao

Jorghe55 Profilo | Newbie

Ho trovato la soluzione,la posto,magari servirà a qualcuno..

In un modulo:

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_SHOW = 1

Public Sub lavora(frm As Form, _
ByVal quelchevuoi As String)
Dim h As Long
h = ShellExecute(frm.hwnd, "open", quelchevuoi, "", "", SW_SHOW)
End Sub


Nel form :

P = App.Path & "<percorso>"
Call lavora(Me,p)

Brainkiller Profilo | Guru

>Ho trovato la soluzione,la posto,magari servirà a qualcuno..

Cmq. la soluzione te l'avevo indicata:

"... la funzione Shell/ShellExecute ... "

e l'API che usi tu è la ShellExecute guarda caso.

Comunque strano, a me risultava che funzionasse anche la Shell di VB6. Si vede che ricordavo male. My fault !
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

lucios Profilo | Newbie

La shell di VB6 funziona benissimo!
Basta richiamare il file .doc desiderato in coda al path di richiamo di winword separato da uno spazio (a casa mia funziona).
Ciao

Brainkiller Profilo | Guru

>La shell di VB6 funziona benissimo!
>Basta richiamare il file .doc desiderato in coda al path di richiamo
>di winword separato da uno spazio (a casa mia funziona).

Si si questo sì, però magari uno può avere la necessità di non dover digitare il path all'eseguibile, esempio se l'applicazione viene installata su PC con lingue diverse ? Se tu hai program files o programmi non funziona, oppure se fosse risolto questo problema, se c'è un estensione PDF magari uno utilizza acrobat reader o acrobat completo che hanno path diversi. ShellExecute è decisamente + comoda perchè lo apre con il programma di default.
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

lucios Profilo | Newbie

Ok, in questo caso ShellExecute è l'ideale.
Ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5