Verificando se existe uma janela aberta


Para verificar se existe uma janela aberta podemos usar a API - FindWindow. A função FindWindow retorna o identificador da janela cuja nome da classe e nome da janela coincida com um valor string informado na função.

A declaração da função é a seguinte:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

A função é encontrada na livraria User32 e funciona no Windows 95/98/Me /NT.

Vamos mostrar como usar a função FindWindow para verificar se uma janela esta aberta:

  1. Primeiro abra a sua calculadora do Windows.
  2. Observe que o nome da janela é : Calculadora.
  3. Agora minimize a Calculadora e abra um novo projeto no VB.

- No formulário padrão insira uma caixa de texto - para informar o nome da janela a verificar e um botão de comando que irá disparar a função.

- Insira o código para declarar a função API no formulário. (observe que neste caso usamos a palavra Private antes de declare)

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

- Agora no evento Click do botão de comando - command1 - informe a função passando como parâmetro o nome da janela que quer verificar. Neste caso o nome deve ser identico ao da título da janela senão ela não será localizada.

Private Sub Command1_Click()
If FindWindow(vbNullString, Text1.Text) Then
  MsgBox "Existe uma janela aberta com o nome de : " & Text1.Text
End If
End Sub

Veja abaixo o resultado para a nossa calculadora

Até a próxima. dica..