Определить, заблокировано ли приложение / занято ли приложение?

Я пытаюсь автоматизировать графический интерфейс внешнего приложения с помощью C # /. NET 4.0

Автоматизируемое приложение (AUT) - это Приложение VB6

При выполнении действия или нажатии кнопки AUT иногда тратит много времени на ожидание ответа от БД. Когда приложение ожидает результатов БД, само приложение бездействует (не регистрирует значительную загрузку ЦП), но оно заблокировано (вы не можете щелкнуть или взаимодействовать с ним).

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

-Я попытался посмотреть на основной процесс AUT для TotalProcessorTime (это измеряет, находится ли приложение в состоянии бездействия или занятости), но, как я уже сказал, иногда приложение находится в режиме ожидания, и все же заблокировано.

Так что я хотел бы записать на пленку опыт толпы stackOverflow, чтобы узнать, знает ли кто-нибудь уже, как с этим справиться, и / или есть ли у вас какие-либо идеи, как этого добиться.

Спасибо

EDIT :

Я играл и только что кое-что обнаружил.

Пока AUT заблокирован, он не отвечает на ввод с клавиатуры или мыши. Однако, если я отправлю в окно сообщения WM_LBUTTONCLICK, я могу подтвердить, что сообщения обрабатываются (и пользовательский интерфейс изменяется).

Итак, я предполагаю, что они намеренно блокируют приложение при выполнении вызовов БД.

8
задан DanyO 16 July 2011 в 00:09
поделиться