Cerrar PDF desde Access
Publicado por José Luis (1 intervención) el 29/05/2020 10:16:47
¿Cómo puedo cerrar un archivo PDF abierto desde una instrucción en Access?
Muchas gracias
Muchas gracias
Valora esta pregunta


0
Option Explicit
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassname As String, ByVal lpWindowName As String) As Long
Private Const WM_CLOSE = &H10
Function IsFileOpen(FileName As String)
Dim ff As Long, ErrNo As Long
On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsFileOpen = False
Case 70: IsFileOpen = True
Case Else: Error ErrNo
End Select
End Function
Private Sub cmdAbrir_Click()
Shell "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe C:\PruebaPDF\ArchivoPDF.pdf", vbNormalFocus
End Sub
Private Sub cmdCerrar_Click()
Dim Ret As Variant
Ret = IsFileOpen("C:\PruebaPDF\ArchivoPDF.pdf")
If Ret = True Then
' MsgBox "Archvio pdf abierto"
Dim Hwnd As Long
Hwnd = FindWindow(vbNullString, "ArchivoPDF.pdf - Adobe Acrobat Reader DC")
' En el paso anterior si solo indicamos el nombre del archivo cierra la pestaña con el archivo pero mantiene abierto el programa
If Hwnd Then
PostMessage Hwnd, WM_CLOSE, 0, ByVal 0&
Else
MsgBox "No se ha encontrado el pdf"
End If
Else
MsgBox "Archivo pdf cerrado"
End If
End Sub