API FINDWINDOW
Estou usando está api para encontrar um documento aberto pelo Acrobat Reader.
Declaro uma variável (Retorno as long) e uso o seguinte comando : Retorno = FindWindow(vbNullString, "Acrobat Reader - [teste.pdf]")
Se a variável Retorno voltar o número 0 quer dizer que não existe o documento aberto senão se Retorno diferente de 0 quer dizer que o documento está aberto.
Agora o que me interessa: Eu consigo matar esse processo pelo número que está na variável Retorno ? Como ?
Obrigado
Declaro uma variável (Retorno as long) e uso o seguinte comando : Retorno = FindWindow(vbNullString, "Acrobat Reader - [teste.pdf]")
Se a variável Retorno voltar o número 0 quer dizer que não existe o documento aberto senão se Retorno diferente de 0 quer dizer que o documento está aberto.
Agora o que me interessa: Eu consigo matar esse processo pelo número que está na variável Retorno ? Como ?
Obrigado
Sim você consegue encerrar a aplicação pelo ponteiro (handle) retornado pelo API FindWindow, veja exemplo abaixo:
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
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 Const WM_CLOSE = &H10
Private Sub Form_Load()
Dim WinWnd As Long
WinWnd = FindWindow(vbNullString, "Untitled - Notepad")
If WinWnd = 0 Then
MsgBox "Janela não encontrada..."
Exit Sub
Else ' Fechando janela !
PostMessage WinWnd, WM_CLOSE, 0&, 0&
End If
End Sub
Tópico encerrado , respostas não são mais permitidas