marcelo_tux Aprendiz

Registrado: Terça-Feira, 2 de Abril de 2013 Mensagens: 230 Localização: São José do Rio Preto - SP
|
Enviada: Seg Jan 11, 2016 1:13 pm Assunto: Verificar Janela no Windows. |
|
|
Gostaria de saber uma função para saber se aplicativo do windows esta maximizado ou minimizado , mais especificamente o Chrome.
Se estiver maximizado gostaria de fazer uma ação.
Obrigado. _________________ Porgramador Delphi - Mobile |
|
strak2012 Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Ter Jan 12, 2016 9:39 am Assunto: |
|
|
A função que procura é a GetWindowPlacement, a mesma consegue pagar vários dados sobre a janela em questão, o problema é que voce precisa saber o HWND da tal janela.
Assim para saber o HWND voce pode usar a função FindWindow a qual deve ser informado a classe da janela ou o titulo da janela sendo seu caso uma janela do chrome não é interessante tentar pelo titulo uma vez que o titulo do chrome varia de acordo com a pagina que estar navegando, te sobrando apenas a classe da janela.
voce tb pode tentar pelo PID da aplicação pois existe forma de converter o PID em HWND e vise versa.
segue um exemplo do uso do GetWindowPlacement e da FindWindow usando o titulo da janela:
| Código: | function getStateWindows(ClasseNome, JanelaTitulo: LPCWSTR): string;
var
WindowPlacement: PWindowPlacement;
showCmd: UINT;
begin
result:='janela não encontrada';
new(WindowPlacement);
if GetWindowPlacement(FindWindow(nil, 'Sem título - Bloco de notas'), WindowPlacement) then
begin
showCmd := WindowPlacement.showCmd;
result := 'A janela estar: ';
if SW_HIDE or showCmd = showCmd then result := result + ' invisivel';
if SW_SHOWNORMAL or showCmd = showCmd then result := result + ' normal';
if SW_SHOWMINIMIZED or showCmd = showCmd then result := result + ' minimizada';
if SW_SHOWMAXIMIZED or showCmd = showCmd then result := result + ' maximizada';
if SW_SHOWNOACTIVATE or showCmd = showCmd then result := result + ' ativa';
if SW_SHOW or showCmd = showCmd then result := result + ' exibida';
if SW_MINIMIZE or showCmd = showCmd then result := result + ' minimizada';
if SW_SHOWMINNOACTIVE or showCmd = showCmd then result := result + ' desativa';
if SW_SHOWNA or showCmd = showCmd then result := result + ' ';
if SW_RESTORE or showCmd = showCmd then result := result + ' restaurada';
end;
Dispose(WindowPlacement);
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
label1.Caption := getStateWindows(nil,'Sem título - Bloco de notas');
end; |
_________________ Tudo podemos quando tudo sabemos! |
|