Een PDF bestand sluiten

Status
Niet open voor verdere reacties.
Met de botte bijl, sluit heel acrobar reader
Code:
Sub TerminateProcess()
    Dim strTerminateThis As String
    Dim objWMIcimv2 As Object
    Dim objProcess As Object
    Dim objList As Object
    Dim intError As Integer
     
    'Process to terminate
    strTerminateThis = "AcroRd32.exe"
     
    'Connect to CIMV2 Namespace
    Set objWMIcimv2 = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
     
    'Find the process to terminate
    Set objList = objWMIcimv2.ExecQuery("select * from win32_process where name='" & strTerminateThis & "'")
   
    'Terminates a process and all of its threads.
    For Each objProcess In objList
        intError = objProcess.Terminate
    Next
             
    Set objWMIcimv2 = Nothing
    Set objList = Nothing
    Set objProcess = Nothing
End Sub

Bron: https://social.msdn.microsoft.com/F...f-files-that-are-open-via-vba?forum=accessdev

Niet getest want ik heb geen acrobat reader geinstalleerd (nergens voor nodig, want in firefox, chrome en edge kan je al standaard ook pdf's bekijken)
 
Laatst bewerkt:
Dat voorbeeld in #1 kijkt naar wat er in de top regel van het Explorer venster staat.
Dat is voor ieder geopend PDF bestand anders, n.l. de naam van het bestand, gevolgd door " - Adobe Reader".
Je zal dus per bestand moeten bijhouden welke geopend is en die dan per stuk sluiten.
Of de Acrobat Reader dat ondersteund weet ik niet.
Tevens zou dat per versie kunnen verschillen.

Als je het echt volledig onder controle wilt hebben kan je beter met de API werken:
https://opensource.adobe.com/dc-acrobat-sdk-docs/

NB.:
Ik gebruik ook Firefox voor het lezen van PDF bestanden.
 
Laatst bewerkt:
@edmoor
De beste botte bijl ;)
 
In Word VBA:

Code:
Sub M_snb()
   For Each it In Tasks
      If InStr(it.Name, ".pdf") Then
        it.Activate
        it.Close
      End If
   Next
End Sub
 
Bedankt helpers voor het aanreiken van een oplossing
@Alphamax die code doet wat ik zocht
@Edmoor bedankt voor de oneliner werkt perfect en geeft ook geen foutmelding als Acrobat reader niet actief is
@snb een vraag: Hoe kom ik aan de waarde "it" en "tasks"?
 
Zet de macro in een Worddocumemt; dan kun je hem/haar met F8 in de Macro-Editor starten.
 
De Tasks collectie bestaat niet in Excel, vandaar dat snb Word noemt.
 
Je kunt vanuit Excel ook een Word-macro laten lopen.
 
Ik heb het zo staan in een oud bestandje wat ook prima werkt.
Code:
Shell "taskkill /F /IM AcroRd32.exe"
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan