Originariamente inviato da sanny82
Shell App.Path & "\Reader\AcroRd32.exe " & pdf
Shell App.Path & "\Reader\AcroRd32.exe /p /h" & pdf
Ne sei proprio sicuro ?
Io nutro qualche dubbio...
1. Chi ti dice che in App.Path c'è la cartella Reader che contiene AcroRd32.exe ?
2. Chi ti dice che l'utente non abbia installato un programma diverso dall'Acrobat Reader ?
La cosa più sicura, e standard, è quella di usare la ShellExecute che automaticamente usa il programma associato al tipo di file:
codice:
Dim sPathFileName as string
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 Const SW_SHOW As Long = 5
sPathFileName = "C:\Documenti\pippo.pdf"
ShellExecute(0&, "open", sPathFileName, vbNullString, vbNullString, SW_SHOW)
Con questo codice è possibile aprire qualsiasi tipo di file, basta cambiare il valore di sPathFileName (es. C:\Documenti\mydoc.doc, C:\Documenti\leggimi.txt, ecc...)
Se si usa "print" al posto di "open", allora si avvia la stampa del documento, ma il programma predefinito associato al tipo di documento potrebbe aprirsi comunque (anche se si imposta il flag SW_HIDE invece di SW_SHOW).
Il punto è che per poter utilizzare un determinato programma si dovrebbe essere certi che quel tale programma sia installato nel computer dell'utente, altrimenti si verifica un'errore.
In questo caso diventa necessario andare a prelevare questa informazione nel Registro di Windows. La cosa comincia a diventare ancro po' più complicata...
Ciao