Как я могу "очистить экран" других программ Windows в VB6? - PullRequest
2 голосов
/ 09 февраля 2010

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

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

это больше подходит для VB.net?

1 Ответ

1 голос
/ 11 февраля 2010

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

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

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

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

api help: 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
...