Você está aqui: Delphi ::: Win32 API (Windows API) ::: Formulários e Janelas |
Como usar a função FindWindow() da API do Windows para retornar o handle de uma determinada janela de alto-nívelQuantidade de visualizações: 22509 vezes |
A função FindWindow() da API do Windows é muito útil quando precisamos obter o handle de uma determinada janela de alto-nível (esta função não nos permite localizar janelas-filhas). Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- HWND FindWindow( LPCTSTR lpClassName, LPCTSTR lpWindowName ); Esta função possui dois parâmetros: lpClassName - É um ponteiro para uma string terminada em null que especifica o nome de classe ou um átomo de classe criado por uma chamada anterior à função RegisterClass() ou RegisterClassEx(). O átomo deve estar no valor de baixa-ordem (low-order) de lpClassName e o valor de alta-ordem (high-order) deve ser zero. Se lpClassName apontar para uma string, ele especifica o nome de classe da janela. O nome de classe pode ser qualquer nome registrado anteriormente com uma chamada à RegisterClass() ou RegisterClassEx(), ou qualquer nome de classe dos controles pré-definidos. Se lpClassName for null, a funções encontrará todas as janelas cujos títulos sejam iguais ao parâmetro lpWindowName. lpWindowName - É um ponteiro para uma string terminada em null que especifica o nome da janela, ou melhor, o título da janela. Se este parâmetro for null, todas as janelas serão consideradas e a função FindWindow() retornará a primeira janela da lista. Veja um trecho de código no qual obtemos um handle para a janela do Bloco de Notas. ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
hNotepadWindow: HWND;
begin
hNotepadWindow := FindWindow('notepad', nil);
ShowMessage('O handle da janela é: ' + IntToStr(hNotepadWindow));
end;
----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
hNotepadWindow: HWND;
tituloJanela: array[0..255] of Char;
tamTituloJanela: Integer;
begin
hNotepadWindow := FindWindow('notepad', nil);
tamTituloJanela := 256;
// vamos fechar a janela com o handle obtido
// primeiro obtemos o título da janela a ser fechada
GetWindowText(hNotepadWindow, tituloJanela, tamTituloJanela);
ShowMessage('Vou fechar a janela do Bloco de Notas com o título: ' +
tituloJanela);
// vamos fechar a janela
SendMessage(hNotepadWindow, WM_SYSCOMMAND, SC_CLOSE, 0);
end;
----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
hNotepadWindow: HWND;
classeJanela: array[0..255] of Char;
tamClasseJanela: Integer;
begin
// vamos localizar e fechar uma janela baseado apenas em seu título
hNotepadWindow := FindWindow(nil, 'Sem título - Bloco de notas');
tamClasseJanela := 256;
// encontramos a janela?
if hNotepadWindow <> 0 then
begin
// vamos obter o nome de classe da janela
GetClassName(hNotepadWindow, classeJanela, tamClasseJanela);
// vamos perguntar ao usuário se ele deseja mesmo fechar a janela
if Application.MessageBox(PChar('Deseja mesmo fechar a janela com o nome de classe: ' +
classeJanela + '?'), 'Fechar', MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = ID_YES then
begin
// vamos fechar a janela
SendMessage(hNotepadWindow, WM_SYSCOMMAND, SC_CLOSE, 0);
end;
end
else
begin
ShowMessage('Não foi possível obter o handle da janela');
end;
end;
Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
|
Python - Como usar a função type() da linguagem Python para descobrir o tipo de dados de uma variável |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






