Собрать все имена классов активных окон - PullRequest
3 голосов
/ 17 августа 2011

Многие программы (True Transparancy и другие) могут активироваться или работать в фоновых именах классов окон, как эта:

Delphi 7 Object Inspector называется tpropertyinspector
Имя класса главного окна Opera - operawindowclass
и т.д.

Так как получить имя класса любого открытого окна в Delphi?

Ответы [ 2 ]

8 голосов
/ 17 августа 2011

Позвоните EnumWindows, чтобы получить все окна верхнего уровня. Затем вызовите GetClassName, чтобы узнать имя класса окна для каждого окна. Если вы также хотите проверять дочерние окна, тогда вызывайте EnumChildWindows в каждом окне верхнего уровня.

Вызовите GetClassName следующим образом:

var
  ClassName: string;
  len: Integer;
...
SetLength(ClassName, 256);
len := GetClassName(window, PChar(ClassName), Length(ClassName));
if len=0 then
  RaiseLastOSError;
SetLength(ClassName, len);
3 голосов
/ 17 августа 2011

Просто используйте функцию GetClassName в Windows API (так же, как в Delphi, как и на любом языке).

...