| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > JEDI API, отключение и подключение устройств |
| Автор: nickolay1979 27.2.2009, 12:01 | ||
| Здравствуйте! Требуется программно отключить, а потом подключить USB-устройство (FT245R) подобно пунктам меню Диспетчера устройств "Отключить" и "Задействовать". Как это проще всего сделать? Как я понял надо использовать SetupApi. Скачал. Подключил. Пробуем вызывать функции...
При вызове SetupDiGetClassDevs получаем: 'Access Violation at address 00000000. Read of address 0000000.' С чем это связано? Что-то с компиляцией модулей? |
| Автор: Riply 27.2.2009, 14:13 |
Что скачал и как подключил догадываться самостоятельно ? По сабжу: LoadSetupApi ? |
| Автор: nickolay1979 27.2.2009, 19:17 | ||
Извиняюсь за краткость! Скачал JEDI. Задал пути к папкам. LoadSetupApi через некоторое время сделал Теперь ошибок нет. Интересует алгоритм и код программы, с помощью которой можно включать и отключать устройства. |
| Автор: nickolay1979 5.3.2009, 10:51 | ||
| Привожу свой код функции (работоспособный), которая выключает/включает устройство по коду экземпляра устройства. Критика и полезные советы очень приветствуются. Хотелось бы в результате обсуждения получить не только работоспособный, но и простой, красивый и оптимизированный код.
Попутно - несколько вопросов. 1. При вызове моей функции с параметром False для отключении устройства N раз подряд, чтобы включить устройство приходится вызывать эту функцию с параметром True тоже N раз подряд. Как будто где-то есть счётчик включения/выключения... Почему и зачем? 2. Хотелось бы прояснить работу SetupDiGetClassDevs. Без флага DIGCF_DEVICEINTERFACE - моя функция не работает. Хотя в других примерах видел вызывы и без этого флага (с параметром Enumerator!). Не понятна связь между параметром Enumerator и флагом DIGCF_DEVICEINTERFACE. 3. Хотелось бы знать как можно назвать по-русски следующие структуры, используемые при вызове функций: HDEVINFO (хендл на структуру ...), TSPDevInfoData (структура ...), TSPPropChangeParams (структура...). Не могу перевести нормально, а название поиметь хочется. |