Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DouglasP

Obter Classe do programa

Recommended Posts

Não sei se muitos aqui conheçem o "WinSight32" é um utilitario que eu saiba que vem instalado junto ao delphi 7,

ele pega a classe do programa, porem estava precisando criar um programa que eu selecionasse o exe atraves de um dialogbox e ele informasse a classe,

seria possivel ?, se sim como.

 

grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra fazer seu aplicaitvo obter informações de uma janela de outro aplicativo, primeiramente é necessário obter o handle dessa janela. Pra conseguir o handle da janela alvo, existem várias maneiras diferentes, mas vou explicar apenas uma:

 

Se você souber o título da janela alvo, use a função API do Windows: FindWindow() definida como:

HWND FindWindow(	  
	LPCTSTR lpClassName,
	LPCTSTR lpWindowName
);
Exemplo de código:

var handleDaJanela:HWND;
...
handleDaJanela:=FindWindow(NIL,'Titulo da Janela');

Agora utilize a função API do Windows: GetClassName() definida como:

int GetClassName(	  
	HWND hWnd,
	LPTSTR lpClassName,
	int nMaxCount
);

Exemplo de uso:

var nomeDaClasse:array[0..127] of char;
	  n:INTEGER;
...
n:=GetClassName(handleDaJanela,@nomeDaClasse, sizeof(nomeDaClasse));
if(n=0) then begin
   showmessage('Erro: '+inttostr(getlasterror)+' ao obter o nome da classe da janela!');
   exit;
end;

* N é armazena o número de chars que foram copiados para o buffer nomeDaClasse. Se for 0 houve um problema ao obter a classe, senão ta sussa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

gostaia de saber como faço para pegar a classe de todas janelas abertas e jogar em um listbox,

antigamente eu pegava o nome das janelas e listava agora preciso pegar a classe delas.

 

grato.

 

 

Aviso da moderação: evite ficar recriando tópicos sobre temas que já existem e que você mesmo criou. Na próxima, em vez de mesclar o tópico com o anterior eu vou simplesmente deletá-lo, considerando-o post duplicado.

Chrnos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite,

como faço para pegar a classe de todas janelas ativas e listar em um listbox?

 

 

grato.

 

esse codigo pega so da que esta em focus:

var
  H: HWND;
  ClassName: Array[0..255] of Char;
begin
  H := GetForegroundWindow;
  GetClassName(H, ClassName, SizeOf(ClassName));
  Memo1.Lines.Add('Classe-> '+ClassName);
  Timer1.Enabled := False
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.