API FINDWINDOW

USUARIO.EXCLUIDOS 06/05/2004 15:27:16
#23333
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
USUARIO.EXCLUIDOS 06/05/2004 21:02:36
#23394
Resposta escolhida
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