Показать сообщение отдельно
Старый 29.06.2006, 14:09   #6  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Модуль цехового расписания с его специфически слабой архитектурой ставит не совсем нормальные задачи, например: если на экране осталось активным определенное окно, не передавать фокус окну очереди заданий. Для этого требуется определить, открыто ли окно.

Использовал для этого модифицированный код (с) 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), neededCaption1strlen(neededCaption)) > 0)
            {
                
info("Gotcha!");
                break;
            }
            
hWnd winapi::getWindow(hWnd#GW_HWNDNEXT);
        
}
    }


Последний раз редактировалось EVGL; 29.06.2006 в 14:13.