Здравствуйте niksap, Вы писали:
N>Здравствуйте Sergey, Вы писали:
S>>Здравствуйте niksap, Вы писали:
N>>>Проблема такая: N>>>ловлю диалог по WH_CBT, HCBT_ACTIVATE. N>>>как поймал HCBT_ACTIVATE сразу лезу по его детишкам-окнам. N>>>но они в это время оказываются еще не досозданы. (это я вижу из SPY++)
N>>>подскажите, как дождаться конца достройки? N>>>не таймаут же какой-нить ставить?! N>>>ставить еще один хук по WM_INITDIALOG уже на сам дилог не хочется.
N>>>WaitForInputIdle не срабатывает, т.к. работает с процессом, а он "усегда готов!" S>> А WH_FOREGROUNDIDLE не помогает?
N>это не одно и тоже? как я понял WaitForInputIdle ((HANDLE)hProcess, INFINITE) срабатывает, когда hProcess как раз становиться в Idle т.е. ждет ввода. WH_FOREGROUNDIDLE будет привязян к потоку/процессу, а мне, скорее, надо к окну. N>Или я чего не понимаю?
Разница в том, что WaitForInputIdle — для процесса (его primary потока), а WH_FOREGROUNDIDLE — для любого потока. Если диалог создается не в основном потоке, может помочь.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.