Показать сообщение отдельно
Старый 03.11.2004, 16:54   #4  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
случайно наткнулся на что-то похожее

в xInfo есть метод activateWindow()
судя по контексту (поищите в АОТе "activateWindow") он берет на вход hWnd
если получить к-л образом список hWnd всех окон (наверняка же можно, через winapi..???), то можно организовать панель с которой можно будет активировать окна.

вот так можно получить хВнд родительского окна клиента аксапты
WinAPI::findWindow('AxaptaClientClassName', '');

есть метод
static client public HWND findWindowEx(HWND _parent, HWND _after, str _class, str _title)
с помощью которого можно получать дочерние окна
как его юзать - я не понял...
вернее, понял, но не смог применить :)
поискав в инете доку на винапишную функцию FindWindowExA которую он юзает, я написал следующий код:

PHP код:
static void Job7(Args _args)
{
    
hWnd    Parent;
    
hwnd    Child;
    ;
    
Parent WinAPI::findWindow('AxaptaClientClassName''');

    for (
Child WinAPI::FindWindowEx(Parent0'''');
         !
children.exists(child);
         
Child WinAPI::FindWindowEx(Parentchild''''))
    {
        
info(strfmt("%1 - %2"childWinAPI::getWindowText(child)));
    }

он выдает какие-то hwnd, но activateWindow() их не кушает

хуже того
hwnd - это, как правило, довольно большие, 6-значные инты.

я попробовал перебором найти то, что примет на вход activateWindow(), и обнаружил, что перебирая числа от 0 до 1000 я преребрал все октрытые у меня на тот момент окна!!!

PHP код:
static void Job6(args a)
{
    
int i;
    ;
    
//infolog.activateWindow(197606);

    
for (01000i++)
    {
        
infolog.activateWindow(i);
    }

короче говоря, я окончательно запутался.
с одной стороны (судя по классу sysCompilerOutput, к примеру) activateWindow берет на вход хвнд, и это работает, с другой стороны опытным путем было найдено окно которой активировалось по activateWindow(906)...
если будут к-л результаты - пишите

PS. я изменил тему треда в надежде что такая привлечет больше людей :)

Уважаемые разработчики!
Предлагаю совместно исследовать возможность соорудить в аксапте панель задач!