Автор: davidyantz
Дата сообщения: 20.02.2008 16:07
Пишу программу на Дельфи, которая использует некую dll (в конкретном случае - twain32.dll). У этой длл-ки есть неприятная особенность - когда источник данных физически не подключен к порту компьютера, то при попытке коннекта к устройству длл-ка выбрасывает на экран окошко с ошибкой, в котором нужно нажить кнопку "ОК".
Я думаю, перехватить этот Exception моя программа не в силах, тогда такой вопрос: как используя ресурсы twain32.dll, определить, подключено ли устройство к компу или нет?
Возможное решение, к которому я сейчас склоняюсь, это создание в моей программе потока, из которого будет вызываться эта dll именно в момент открытия источника данных, а в основной программе повесить WaitForSingleObject на данный поток с временем ожидания 1000-2000 мс, после истечения которого считать, что окошко с ошибкой всё же появилось. Но это решение мне кажется не совсем корректным, потому как неизвестно, будет ли фунциклировать twain32.dll, если не нажать на кнопку "ОК" в окне с ошибкой. (Примечание: моя программа запускается от имени некоего пользователя, и, естественно, залогинившийся на компе юзер не увидит никакого окошка с ошибкой и тем более не сможет ни на что нажать).