3
打開它後,我現在用的是FollowHyperlink
方法,這裏顯示打開PDF文件,關閉打開的PDF:使用FollowHyperlink
Sub Sample()
ActiveWorkbook.FollowHyperlink "C:\MyFile.pdf"
End Sub
經發現at this thread。
我的問題是,我該如何關閉pdf?
打開它後,我現在用的是FollowHyperlink
方法,這裏顯示打開PDF文件,關閉打開的PDF:使用FollowHyperlink
Sub Sample()
ActiveWorkbook.FollowHyperlink "C:\MyFile.pdf"
End Sub
經發現at this thread。
我的問題是,我該如何關閉pdf?
這裏有兩個選項我使用。
選項1:這個選項我用它來殺死所有打開的互聯網瀏覽器,當它們不可見(又名我搞砸了)。可能有一種方法可以將文件單獨出來,但我不完全確定沒有API調用,就像@Jeeped提到的那樣。我將列出第二個API調用。
要找出您正在運行的Adobe類型。打開Windows任務管理器>進程並使用說明Adobe Reader查找.exe。
Sub Kill_All_PDFs()
'***ErrorHandler***
On Error Resume Next
'***Define Variables***
Dim objectWMI As Object
Dim objectProcess As Object
Dim objectProcesses As Object
'***Set Objects***
Set objectWMI = GetObject("winmgmts://.")
Set objectProcesses = objectWMI.ExecQuery(_
"SELECT * FROM Win32_Process WHERE Name = 'AcroRd32.exe'") '< Change if you need be
'***Terminate all Open PDFs***
For Each objectProcess In objectProcesses
Call objectProcess.Terminate
Next
'***Clean Up***
Set objectProcesses = Nothing
Set objectWMI = Nothing
End Sub
選項2 API調用方法:
在這裏,您將能夠通過標題來找到你的PDF文件。我修改了代碼來查找Adobe,但是如果您想進一步閱讀它的工作原理,下面列出了源代碼。只需添加顯示在PDF文件頂部的標題即可。
來源:http://support.microsoft.com/kb/168204
Private Declare Function FindWindow _
Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As Long
Private Declare Function SendMessage _
Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Long) _
As Long
Private Sub Close_AdobeReader()
Dim lpClassName As String
Dim lpCaption As String
Dim Handle As Long
Const NILL = 0&
Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060&
lpClassName = "AcrobatSDIWindow"
lpCaption = "e.g.name - Adobe Reader" '< add Title Here
'* Determine the handle to the Calculator window.
Handle = FindWindow(lpClassName$, lpCaption$)
'* Post a message to Calc to end its existence.
Handle = SendMessage(Handle, WM_SYSCOMMAND, SC_CLOSE, NILL)
End Sub
希望這有助於你對你的方式!
您將不得不導入一些WinAPI的User32函數並枚舉頂級窗口,以查找與使用PDF名稱構造的字符串匹配的窗口標題。似乎更容易點擊PDF閱讀器右上角的×。 – Jeeped
聽起來很複雜...我只是用發送鍵alt f4 – bsapaka
這可能是一個壞主意@bsapaka。發送密鑰最好不可靠。你可能會無意中關閉一個不同的程序。 – RubberDuck