Hi Allen, your script works fine!
procedure LogAppStructure(obj);
var count, i, Str;
params: array[0..7] of string;
begin
params[0] := 'WndClass';
params[1] := 'WndCaption';
params[2] := 'Index';
params[3] := 'Visible';
params[4] := 'Exists';
params[5] := 'ClrFullClassName';
params[6] := 'ProductName';
params[7] := 'ProductVersion';
Str := '';
for i := 0 To 7 do
if IsSupported(obj, params) then
Str := Str + params + ' = ' + VarToStr(Evaluate('obj.' + params)) + #10#13;
Log.AppendFolder(obj.Name, Str);
for i := 0 To obj.ChildCount - 1 do
LogAppStructure(obj.Child(i));
Log.PopLogFolder;
end;
the non-unique vcl-objects are e.g. OpenDialog (window('#32770')
so i have just call
LogAppStructure(Sys.Process('DiaShow').Window('#32770', '*', 1));
to get only the children of this dialog!
thank you!