100% вывод окна на передний план.

Тема в разделе "WASM.BEGINNERS", создана пользователем CrawlUp, 6 авг 2018.

  1. CrawlUp

    CrawlUp Member

    Публикаций:
    0
    Регистрация:
    1 фев 2018
    Сообщения:
    90
    Пишу программу для автоматической загрузки отладочных символов Fasma в Ida Pro и не как не могу решить казалось бы простую проблему клика в окне мышкой на папке открытия файла. Все неоходимые дескрипторы получаются без проблем, но вот само окно выводится на передний план через раз, перепробывал уже все возможные варианты вот например один из последних.
    Код (Text):
    1.  
    2.                invoke GetForegroundWindow;  
    3.                  mov [CurHwnd],eax;                      
    4.                  invoke GetCurrentThreadId
    5.                  mov [MyThread],eax;
    6.                  lea eax,[pThreadID];
    7.                  invoke GetWindowThreadProcessId,[CurHwnd],eax;
    8.                  invoke AttachThreadInput,[CurHwnd],[MyThread],TRUE;
    9.                  invoke SetWindowPos,[_hwndIda], HWND_TOPMOST, 0, 0, 0, ,SWP_NOSIZE+SWP_NOMOVE+SWP_SHOWWINDOW;
    10.                  invoke SetForegroundWindow,[_hwndIda];
    11.                  invoke SetFocus,[_hwndIda];
    12.                  invoke SetActiveWindow,[_hwndIda];
    13.                  invoke AttachThreadInput,[CurHwnd],[MyThread],FALSE;
    14.  
    И вторая проблема если моя программа запущена не из режима администратора то в окне IdaPro клик мыши также не работает. Добраться до меню Ida Pro не смог GetMenu возвращает ноль.
     
  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.954
    Проблема скорей всего не в том, что применено недостаточно разных способов зафокусить окно, а в том, что клик мыши ловит другое окно и понимает его по-своему. А там уж кто из них последним зафокусился, того и тапки. Так что придумывай как засабклассить/повесить свой обработчик на клик.