Array
(
)

Pegar nome do form em outro aplicativo

Marcos Rocha
   - 20 nov 2009

Bom dia amigos.

Estou tendo muita dificuldade em pegar o nome de um form (exemplo o da calculadora) a partir de seu HWND.

Tenho uma função que percorre os Handles de um programa e consegue eficazmente capturar a classe e seu título com as funções GetClassName e GetWindowText respectivamente. Entretanto é de meu extremo interesse capturar o nome do form, coisa esta que não estou obtendo êxito nem com GetProp (talvez eu não esteja sabendo como usar) e nem com SendMessage. Aliás como eu tenho o Handle do form da outra aplicação gostaria de saber como é possível, talvez, fazer um typecast ou ponteiro do seu handle e assim ter acesso ao nome do form.

// Exemplo de mais ou menos o que eu preciso

var

  FormHandle: HWND;

begin

  FormHandle := FindWindow(nil, 'Calculadora');

  ShowMessage(TWinControl(FormHandle).Name);

end;

Socram
|
MVP
    20 nov 2009

var
  aName: array [0..255] of Char;


  if Boolean(GetClassName(hWnd, aName, 256)) then
    ShowMessage( 'ClassName :  ' + string(aName) )
  else
    ShowMessage( 'ClassName :  not found');
  end; 

Marcos Rocha
   - 20 nov 2009

Amigo não é a Classe do form que eu preciso, e sim o NOME. Veja que posso ter um form chamado CalcPlusTabajara que seja da classe TCalculadora, então realmente preciso saber o NOME do infeliz.