как я могу очистить экран другой программы Windows в VB6?

Я хотел бы отслеживать процесс каждую секунду, пока он не отобразит ожидаемое сообщение об ошибке.

как я могу отслеживать что-то.exe и получать уведомления через «очистку экрана» сообщение об ошибке от something.exe все из моей программы vb6? можно ли завершить или нажать кнопку «ОК» из vb6?

такие вещи лучше подходят для VB.net?


person zxbczxb    schedule 09.02.2010    source источник


Ответы (1)


Создайте приложение vb, которое работает с таймером, который срабатывает с нужной частотой. В зависимости от всплывающей ошибки вам, возможно, придется создать ее как службу Windows, чтобы она могла продолжать работать (основное окно ошибки может заблокировать доступ к другим окнам, пока не будет обработано).

Посмотрите на функцию API EnumWindows. Это даст вам коллекцию окон/функций, открытых в данный момент. При добавлении нового окна вы можете обнаружить, что на экране отображается новое окно с ошибкой.

Ошибка должна всплывать вверх автоматически, но вы можете использовать API-вызов BringWindowToTop для hwnd нового окна, чтобы быть уверенным.

Не точное соответствие, но ссылки для справки, которые вы можете построить из:

справка по API: http://www.freevbcode.com/ShowCode.Asp?ID=701

помощь в захвате изображения: http://www.codeproject.com/KB/vb-interop/DesktopScreenshotInVB6.aspx

Уничтожение сообщения об ошибке — вы можете попытаться использовать API, чтобы нажать кнопку, или, в качестве альтернативы, вы можете принудительно убить приложение, вызвавшее ошибку. быстрое убийство через API:

SendMessage app_hWnd, WM_CLOSE, 0, 0
person jasonk    schedule 11.02.2010