Ir para conteúdo
Fórum Script Brasil
  • 0

Função Findwindow


Paulo Nobre

Pergunta

....
S:THandle
.....
S := FindWindow(nil, 'Semelhança de triângulos');
...... 
If S>0 Then SendMessage(S,WM_CLOSE,0,0);

Uso a idéia do código acima para fechar uma janela.

Gostaria de saber o seguinte:

1) O significado da variável nil do findexist, naquela posição.

2) Quais seriam outros parâmetros que teria para o lugar ocupado por nil, com algum exemplo se possível?

3) Quando se usa a função FindWindowsEx, e qual diferença para a anterior ,FindWindow?

4) Na função SendMessage, o que significam os parâmetros (dois últimos)0,0?

5) Quais outros valores poderiam ocupar o lugar deles, se possível com algum exemplo?

Abusei? :P

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
1) O significado da variável nil do findexist, naquela posição.

FindWindow('Nome da Classe', 'Nome da Janela');

Então como você está pegando o handle da janela pela classe, você não precisa estipular o nome da janela, e se coloca nil porque o tipo é PChar, se fosse String seria ''

2) Quais seriam outros parâmetros que teria para o lugar ocupado por nil, com algum exemplo se possível?

O nome da janela, exemplo

FindWindow('SciCalc', 'Calculadora');

Não se faz diferenciação de maiúscula pra minúscula então FindWindow('sciCAlC', 'calculaDoRA') da na mesma.

Normalmente não se coloca o nome da Janela, porque só se colocaria no caso de mais janelas ter a mesma classe, o que é

pouco provável, exemplo:

Você tem um form que se chama Form1 e a classe seria TForm1, e o nome da Janela seria "Cadastro" e também você tem

em outra aplicação onde a mesma pode ser aberta junto com o programa, um outro form com a classe TForm1 mas o nome

da janela é Backup, ai sim teria que especificar o nome da janela...

3) Quando se usa a função FindWindowsEx, e qual diferença para a anterior ,FindWindow?

FindWindowEx se usa pra pegar janelas dentro de janelas (Child).

exemplo pra pegar o handle do relógio do Windows...

var

TrayWnd, TrayNWnd, ClockWnd: HWND;

begin

TrayWnd := FindWindow('Shell_TrayWnd', nil); -> Barra do menu Iniciar

TrayNWnd := FindWindowEx(TrayWnd, 0, 'TrayNotifyWnd', nil); -> Janela onde está o relógio e os ícones do lado dele

ClockWnd := FindWindowEx(TrayNWnd, 0, 'TrayClockWClass', nil); -> Relógio

4) Na função SendMessage, o que significam os parâmetros (dois últimos)0,0?

Os dois últimos parâmetros são usados pra passar informações adicionais...

5) Quais outros valores poderiam ocupar o lugar deles, se possível com algum exemplo?

exemplo, você vai mandar uma mensagem ao seu aplicativo

const

WM_MYMSG = WM_APP + 0588; -> Sua mensagem

MINIMIZE = 10; -> Adicional

CLOSE = 11; -> Adicional

SendMessage(FindWindow('Seila', nil), WM_MYMSG, MINIMIZE, 0);

ai quando você recebe no aplicativo, você pode fazer várias ações, conforme o valor de WParam e LParam exemplo

if Message.Msg = WM_MYMSG then

case Message.WParam of

MINIMIZE: Application.Minimize;

CLOSE: Application.Close;

end;

rsr talvez não seja o melhor exemplo mais espero que de pra você entender

abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...