ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Verificar Janela no Windows.

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
marcelo_tux
Aprendiz
Aprendiz


Registrado: Terça-Feira, 2 de Abril de 2013
Mensagens: 230
Localização: São José do Rio Preto - SP

MensagemEnviada: Seg Jan 11, 2016 1:13 pm    Assunto: Verificar Janela no Windows. Responder com Citação

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
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
strak2012
Colaborador
Colaborador


Registrado: Segunda-Feira, 13 de Janeiro de 2014
Mensagens: 1518
Localização: Maceió - AL

MensagemEnviada: Ter Jan 12, 2016 9:39 am    Assunto: Responder com Citação

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!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB