Имя класса any Форма Delphi также является зарегистрированным именем класса окна базового "окна Windows". Таким образом, вы должны иметь возможность использовать FindWindow () вызов Windows API, чтобы получить дескриптор окна TFrmMain, похожий на:
hWnd := FindWindow('TFrmMain', NIL);
Если существует (возможно) несколько экземпляров данного имени класса формы, вы можете различить их, используя 2-й параметр (Имя окна, то есть «заголовок» или заголовок). Если этого по-прежнему недостаточно, вам, возможно, потребуется немного сложнее и взглянуть на использование функции EnumWindows () и проверку свойств окон, чтобы найти интересующую.
Чтобы проверить имя класса произвольного дескриптора окна (например, в функции обратного вызова, которую вы используете с EnumWindows ()), используйте GetClassName () , например:
function GetWindowClassName(const aHWND: HWND): String;
var
buf: array[0..255] of Char; // Tip: Use a more appropriately sized array
begin
GetClassName(SomeHWND, @buf, Length(buf));
result := buf;
end;
...
if SameText(GetWindowClassName(hwnd), 'TFrmMain') then
...
etc
Без конкретных подробностей вашей конкретной задачи реализации трудно сказать, какой из них, скорее всего, будет работать лучше для вас, но, надеюсь, этих указателей должно хватить, чтобы вы пошли по правильному пути.