Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с USB-портом напрямую, как узнать имя файла устройства? 
:(
    Опции темы
source777
Дата 13.3.2008, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 1
Всего: 56



Дано: Компьютер с 6 USB-портами, к одному из которых подсоединяется устройство.
Задача: Писать в это устройство управляющие команды и читать с него данные.
Проблема: Как определить символическое имя файла устройства? 

Если кто сталкивался с подобной задачей, поделитесь, пожалуйста, опытом...


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
igm
Дата 13.3.2008, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 28.2.2008

Репутация: нет
Всего: -2



тема, тяжолая ... могу тока ссылку дать на проект написаный в Pascal сам не пробывал, 
если разберешся как записать или счить с USB поделись советом 
http://pascal.sources.ru/hardware/usb4pas.htm
PM MAIL WWW   Вверх
Riply
Дата 13.3.2008, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(source777 @  13.3.2008,  17:47 Найти цитируемый пост)
Проблема: Как определить символическое имя файла устройства? 


Если я правильно поняла вопрос, то
imho, удобнее всего, вытаскивать подобную информацию через SetupAPI.
Там есть много чего полезного  smile 
PM MAIL   Вверх
source777
Дата 13.3.2008, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 1
Всего: 56



Цитата(Riply @  13.3.2008,  19:47 Найти цитируемый пост)
Если я правильно поняла вопрос, то
imho, удобнее всего, вытаскивать подобную информацию через SetupAPI.
Да, я тоже только упоминания про SetupAPI находил, вот только я что-то не пойму откуда GUID нужного устройства брать, он где-то в реестре записывается при подключении?..

Цитата(igm @  13.3.2008,  19:13 Найти цитируемый пост)
могу тока ссылку дать на проект написаный в Pascal сам не пробывал
Спасибо, конечно, но там модуль по ссылке уже устарел...

Цитата(igm @  13.3.2008,  19:13 Найти цитируемый пост)
если разберешся как записать или счить с USB поделись советом 
Когда разберусь, я пожалуй даже статью об этом напишу, ибо реально мало что-то инфы об этом в инете, хотя USB вроде не вчера появился...

Добавлено через 14 минут и 47 секунд
Вроде нашёл в реестре нечто похожее в ветках HKLM\System\ControlSet001\Enum\USB\Vid_xxxx&Pid_xxxx\ 


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Riply
Дата 13.3.2008, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(source777 @  13.3.2008,  22:30 Найти цитируемый пост)
Да, я тоже только упоминания про SetupAPI находил, вот только я что-то не пойму откуда GUID нужного устройства брать, он где-то в реестре записывается при подключении?..


Все GUID перечислены в MSDN, я брала оттуда.

Rouse_  выкладывал хорошую программу, демонстрирующую работу с SetupAPI.
Не знаю, есть ли она на его сайте. Если нет - попробуй у него спросить. 
Может сохранилась.

PM MAIL   Вверх
igm
Дата 14.3.2008, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 28.2.2008

Репутация: нет
Всего: -2



что значит устарел?
PM MAIL WWW   Вверх
source777
Дата 15.3.2008, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 1
Всего: 56



Цитата(Riply @  13.3.2008,  23:16 Найти цитируемый пост)
Все GUID перечислены в MSDN, я брала оттуда.
А откуда там все? Что то я сомневаюсь, что в  MS хотя бы слышали про мой вольтметр...

Цитата(Riply @  13.3.2008,  23:16 Найти цитируемый пост)
Rouse_  выкладывал хорошую программу, демонстрирующую работу с SetupAPI.
Это та, которая отключает доступ к USB-накопителям? 


Цитата

что значит устарел?
То и значит, там считается что USB подключен через PCI, сейчас такого днём с огнём не найдёшь, а в 98-ом было актуально...





--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Riply
Дата 15.3.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Комодератор
Сообщений: 572
Регистрация: 27.3.2007
Где: St. Petersburg

Репутация: 21
Всего: 32



Цитата(source777 @  15.3.2008,  01:03 Найти цитируемый пост)
А откуда там все? Что то я сомневаюсь, что в  MS хотя бы слышали про мой вольтметр...


 smile 
Нет не слышали. Но зато знают GUID всех "классов" устроийств, потдерживаемых Windows.
А имея на руках GUID "класса", можно получить все устройства "этого класса", которые есть в системе,
вместе с полной информацией о них.
Твой вольтметр будет среди них  smile 

Цитата(source777 @  15.3.2008,  01:03 Найти цитируемый пост)
Это та, которая отключает доступ к USB-накопителям? 

Нет, другая. Вроде называлась DevList.
Она как раз и перечисляла все устройства в системе, как Control Panel -> System -> HardWare -> Device Manager
Только выводила гораздо больше информации.

PM MAIL   Вверх
Demogargon
Дата 23.3.2008, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 9.1.2008

Репутация: нет
Всего: 1



Я не специалист в этой области, но может быть, Вам DOS-имя устройства для Ваших целей использовать. 
Код

function QueryDosDevice( 
ipDeviceName : pchar // Dos-имя устройства
ipTargetPath : pChar // Буфер для результата
ucchMax : DWORD // Размер буфера pResult
): DWORD;

--------------------
Дело стоит рядом со стоящим, идет за идущим, творит с творящим. Оно следует за нами подобно тени.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0787 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.