Что нового

Как програмно отключить USB-ComPort Device?

zz555

Новичок
Сообщения
3
Репутация
0
Как програмно отключить USB-ComPort Device?
Точнее как програмно снять питание с USB как в безопасном извлечении флэшки.

Я использую CommMG.au3, там есть команда _CommClosePort(), но эта команда помогает только чтобы физически отключить устройство чтобы без зависания закрыть программу.
А мне нужно при постоянно запущенной программе по очереди подключать несколько одинаковых устройств для прошивки.

Если устройство физически отключить и подключить снова, при коннекте происходит зависание (не важно в тот же порт подключается или в другой).

При первом подключении коннект происходит нормально (неважно физическое подключение было до или после запуска программы).

Искал решение на форуме и в гугле, не могу найти. Если кто знает, как решить проблему, подскажите.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Может быть это поможет: http://www.autoitscript.com/forum/topic/83470-safely-eject-a-usb-drive/
 
Автор
zz555

zz555

Новичок
Сообщения
3
Репутация
0
Буду разбираться с SafeDriveRemover.dll.au3 и DeviceAPI.au3, спасибо.
 

Prog

Продвинутый
Сообщения
537
Репутация
65
zz555 [?]
Точнее как програмно снять питание с USB как в безопасном извлечении флэшки.
При безопасном извлечении флешки, питание с USB не снимается, а только записываются на флешку кешированые данные.
 
Автор
zz555

zz555

Новичок
Сообщения
3
Репутация
0
Решил проблему без дополнительных библиотек. Все оказалось проще.

Добавил
_CommSetPort("COM1",$result_err,$baud,$databits,$parity,$stopbits,$flowcontrol)
перед
$comports=_CommListPorts(1) ; нужна для автодетекта com-порта

Зависание пропало. Все равно спасибо за ответы.
 
Верх