Toon posts:

[Delphi] GetClassInfo

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer de handles van alle childs in een andere applicatie te vinden. De gebruikte componenten in de andere Applicatie zijn bekend. (Is eigen App).
Dus zijn de captionnamen ook bekend.
Ik dacht nu met behulp van GetClassInfo de verschillende componenten te kunnen identificeren, omdat TWndClass ook de captionnaam bevat.

Als ik echter onderstaande code gebruik krijg ik de error: 'Class does not exist'.
GetClassName levert wel de goede namen op. Form1 heeft een button en een Editbox. ClassName is eerste keer TEdit en tweede keer TButton.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.OnTest(Sender: TObject);
var
  Wnd : HWND;
begin
  Wnd := FindWindow(nil, 'Form1');
  EnumChildWindows(Wnd, @GetEditCtrl,1);
end;

Function GetEditCtrl(Wnd : HWND): Boolean; stdcall;
var
  ClassName : array[0..127] of char;
  ErrorStr : array[0..127] of char;
  ClassInfo: TWndClass;
begin
  GetClassName(Wnd, ClassName, SizeOf(ClassName));
  GetClassInfo(Wnd, ClassName, ClassInfo);

  FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, GetLastError,0 , ErrorStr, 127, nil);
  ShowMessage(ErrorStr);
end;


Weet iemand wat ik nu nog fout doe? GetClassName werkt wel goed, maar GetClassInfo niet (Error: Class does not exist).

  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Al op www.tamaracka.com gezocht?

We adore chaos because we like to restore order - M.C. Escher