Модуль цехового расписания с его специфически слабой архитектурой ставит не совсем нормальные задачи, например: если на экране осталось активным определенное окно, не передавать фокус окну очереди заданий. Для этого требуется определить, открыто ли окно.
Использовал для этого модифицированный код (с) AndyD, хочу поделиться:
PHP код:
static void test_windows(Args _args)
{
int hWnd;
str neededCaption;
#WinApi
;
neededCaption = formCaption(formStr(ProdJournalTransProd));
if (infolog.hWnd())
{
hWnd = winapi::getWindow(infolog.hWnd(), #GW_CHILD);
if (hWnd)
hWnd = winapi::getWindow(hWnd, #GW_CHILD);
while (hWnd)
{
if (strScan(Winapi::getWindowText(hWnd), neededCaption, 1, strlen(neededCaption)) > 0)
{
info("Gotcha!");
break;
}
hWnd = winapi::getWindow(hWnd, #GW_HWNDNEXT);
}
}
}