![]() |
|
||||
Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: Delphi ::: Win32 API (Windows API) ::: Formulários e Janelas |
Como usar a função GetWindow() da API do Windows para pesquisar e retornar um handle para uma janela baseado em seu título completo ou parcial usando DelphiQuantidade de visualizações: 15219 vezes |
|
Em algumas situações nós precisamos pesquisar e retornar um handle para uma janela baseado em seu título completo ou parcial, ou seja, gostaríamos de encontrar uma janela que contenha a palavra "sexo". Isso pode ser feito com o auxílio da função GetWindow() da API do Windows. Veja: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
// função personalizada que permite encontrar uma janela
// baseado em seu título
function FindWindowByTitle(WindowTitle: string): Hwnd;
var
NextHandle: Hwnd;
NextTitle: array[0..255] of char;
begin
// vamos obter a primeira janela
NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST);
while NextHandle > 0 do
begin
// vamos obter o título da janela
GetWindowText(NextHandle, NextTitle, 256);
// a janela contém o título que procuramos?
if Pos(Uppercase(WindowTitle), UpperCase(String(NextTitle))) <> 0 then
begin
Result := NextHandle;
Exit;
end
else
// vamos tentar a próxima janela
NextHandle := GetWindow(NextHandle, GW_HWNDNEXT);
end;
// não encontramos nada? vamos retornar um handle nulo
Result := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
handle: hwnd;
begin
// vamos localizar e fechar a Calculadora do Windows
// ou qualquer janela que contenha o texto "Calculadora"
handle := FindWindowByTitle('Calculadora');
if handle <> 0 then // encontramos a janela? vamos fechá-la
SendMessage(handle, WM_SYSCOMMAND, SC_CLOSE, 0)
else
ShowMessage('A janela pesquisada não foi encontrada');
end;
Neste exemplo nós pesquisamos uma janela que contenha a palavra "Calculadora" em seu título. Se encontrada, nós a fechamos com o auxílio da função SendMessage() e a mensagem WM_SYSCOMMAND com o valor SC_CLOSE para o parâmetro wParam. 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 |
|
C - Exercício Resolvido de C - Como ler um número inteiro e imprimir seu sucessor e seu antecessor em C |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






