Buongiorno a tutti, ho letto diversi thread su questo argomento, ma non riesco a trovare la soluzione giusta per me.
In pratica, io devo aprire il file da codice e stamparlo (e qui non ho problemi), il problema è che una volta stampato, rimane aperta la fastidiosissima finestra di acrobat.
Tra tutte le guide lette, questo è quello che più si avvicina a quello che mi serve:
Private Const WM_CLOSE = &H10
Private Const INFINITE = &HFFFFFFFF
Private Declare Function apiPostMessage _
Lib "user32" Alias "PostMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) _
As Long
Private Declare Function apiFindWindow _
Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) _
As Long
Private Declare Function apiWaitForSingleObject _
Lib "kernel32" Alias "WaitForSingleObject" _
(ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) _
As Long
Private Declare Function apiIsWindow _
Lib "user32" Alias "IsWindow" _
(ByVal hwnd As Long) _
As Long
Private Declare Function apiGetWindowThreadProcessId _
Lib "user32" Alias "GetWindowThreadProcessId" _
(ByVal hwnd As Long, _
lpdwProcessID As Long) _
As Long
Function fCloseApp(lpClassName As String) As Boolean
Dim lngRet As Long, hwnd As Long, pID As Long
hwnd = apiFindWindow(lpClassName, vbNullString)
If (hwnd) Then
lngRet = apiPostMessage(hwnd, WM_CLOSE, 0, ByVal 0&)
Call apiGetWindowThreadProcessId(hwnd, pID)
Call apiWaitForSingleObject(pID, INFINITE)
fCloseApp = Not (apiIsWindow(hwnd) = 0)
End If
End Function
peccato che questo chiude tutte le finestre aperte (quindi anche eventuali altri pdf aperti).
La domanda quindi è questa, oltre alla class, conosco anche la caption della finestra da chiudere, è possibile passare anche questo parametro?
Grazie in anticipo