Форум программистов, компьютерный форум CyberForum.ru

Отключение usb портов по отдельности - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.79
VirusVoronezh
 Аватар для VirusVoronezh
1 / 1 / 0
Регистрация: 21.11.2008
Сообщений: 70
27.08.2012, 09:59     Отключение usb портов по отдельности #1
Вот такая тема: начальство выиграло тендер на поставку компов, компы собрались, доставили, а при сдаче вот такая беда...

По условиям договора, в компах должна быть возможность отключения по отдельности каждого usb порта, т.е. к примеру: на материнской плате есть 4 порта, нужно сделать так, чтобы, например, не работал 1 и 4 порт или все кроме 2 порта....

Мне начальство поставило задачу, найти способ как это сделать... Я гуглил пару дней, создавал темы на софтовых форумах, но всё без результатно Весь софт, который я находил или мне советовали выполняет функционал: либо отключения всех usb устройств, либо отключения определённого типа устройств (флешки, принтера... т.д.)....

Я сам работаю тут (в паралель с учёбой) инженером (компы кручу, софт ставлю, ремонт), сам пишу на C#, но что-то подсказывает, что обращаться нужно именно к C++'сникам (т.е. к вам ).

Буду благодарен за любую помощь, хоть в кусках кода... может кто поможет в написании...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2012, 09:59     Отключение usb портов по отдельности
Посмотрите здесь:

Строка: Распечатать на экране по отдельности все цифры заданного числа. C++
C++ Открытие соединенных com портов
Перечисление Com портов C++
Массив: Начиная с точки, заданной 1-й строкой, в цикле суммировать по отдельности абсциссы и ординаты точек C++
6. Написать программу, которая предлагает пользователю ввести сумму в гривнах (дробное число) и выводит по отдельности количество гривен и количество C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,043
27.08.2012, 10:02     Отключение usb портов по отдельности #2
вообще-то в компе стоит ХАБ (один или несколько) и отключить ты сможешь только его
со всеми портами
физически не подойдет??
VirusVoronezh
 Аватар для VirusVoronezh
1 / 1 / 0
Регистрация: 21.11.2008
Сообщений: 70
27.08.2012, 10:15  [ТС]     Отключение usb портов по отдельности #3
ValeryS, благодарен за столь быстрый отклик )))

Но уважаемый ValeryS, я уже Диспетчер устройств пролазил, увы, если было бы так просто... Но нужно отключение ИМЕННО ПО ОТДЕЛЬНОСТИ КАЖДОГО usb порта!

Вот поэтому собственно сюда и обратился (( Я уже пробовал и аналоги Дипетчера - прогу от Microsoft'a под названием DevCon (но это аналог Диспетчера, только в консольном исполнении), т.е. всё тоже самое, только usb концентратор можно вырубить, отключить usb устройство... но это не подходит!
-=ЮрА=-
Заблокирован
Автор FAQ
27.08.2012, 11:13     Отключение usb портов по отдельности #4
VirusVoronezh, посмотри WM_DEVICECHANGE
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Суть - устройство появилось (DBT_DEVICEARRIVAL) на нужном тебе порте - отрубывай его посылом этого же сообщения только DBT_DEVICEREMOVECOMPLETE (вобщем подменяй сообщения - система вместо монирования выбросит устройство). Порт зашит здесь DBT_DEVTYP_PORT http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
C++
1
2
3
4
5
6
typedef struct _DEV_BROADCAST_PORT {
  DWORD dbcp_size;
  DWORD dbcp_devicetype;
  DWORD dbcp_reserved;
  TCHAR dbcp_name[1]; //Вот имя порта
} DEV_BROADCAST_PORT, *PDEV_BROADCAST_PORT;
raxp
10140 / 6527 / 475
Регистрация: 28.12.2010
Сообщений: 21,167
Записей в блоге: 1
27.08.2012, 11:43     Отключение usb портов по отдельности #5
Но нужно отключение ИМЕННО ПО ОТДЕЛЬНОСТИ КАЖДОГО usb порта
видимо не дошло с первого раза ...отключить (размонтировать) можно только внутренний хаб (хабы на выбор) с принадлежащими ему портами или отдельную флешку .

начальство выиграло тендер на поставку компов, компы собрались, доставили, а при сдаче вот такая беда...

По условиям договора, в компах должна быть возможность отключения по отдельности каждого usb порта, т.е. к примеру: на материнской плате есть 4 порта, нужно сделать так, чтобы, например, не работал 1 и 4 порт или все кроме 2 порта....
...ну, выведите их физически все на переднюю панель столько, сколько нужно ...если надо, с переключателями-кнопками.

Суть - устройство появилось (DBT_DEVICEARRIVAL) на нужном тебе порте - отрубывай его посылом этого же сообщения только DBT_DEVICEREMOVECOMPLETE
можно конечно и подшаманить , вот только не для флешек может не сработать.
VirusVoronezh
 Аватар для VirusVoronezh
1 / 1 / 0
Регистрация: 21.11.2008
Сообщений: 70
27.08.2012, 12:35  [ТС]     Отключение usb портов по отдельности #6
-=ЮрА=-, вот, уже и кусками кода начали делиться, это хорошо как я говорил, что в С++ я несилён, ибо пишу на C# только, но сейчас докрутим ещё 25 компов почитаю в инете про это ))

Надеюсь -=ЮрА=-, вы ещё загляните в эту тему ))

Цитата Сообщение от raxp Посмотреть сообщение
можно конечно и подшаманить , вот только не для флешек может не сработать.
raxp, главное чтобы с флешками это всё работало, на остальные устройства пофиг.

Цитата Сообщение от raxp Посмотреть сообщение
...ну, выведите их физически все на переднюю панель столько, сколько нужно ...если надо, с переключателями-кнопками.
raxp, с радостью, если был бы 1 ПК, а их over30 и все они уже доставлены в другой город, по условиям тендера (электронного аукциона) ещё есть 1 неделя на то, чтобы всё было как прописано в ТЗ.... ничего доставить увы не получится, надо как-то решить эту проблему софтово, но софт который я находил в инете не соответствуют, как я уже писал, тому что нам нужно...
raxp
10140 / 6527 / 475
Регистрация: 28.12.2010
Сообщений: 21,167
Записей в блоге: 1
27.08.2012, 12:52     Отключение usb портов по отдельности #7
вот, уже и кусками кода начали делиться, это хорошо как я говорил, что в С++ я несилён, ибо пишу на C# только, но сейчас докрутим ещё 25 компов почитаю в инете про это
ну, могу готовым кодом размонтирования через SetupAPI поделиться, но на Delphi ...в комплекте "мини-HASP" свободно приложен.

Однако, появляется закономерный вопрос: железо вы поставили. А как же быть с ОС на ПК? Ежели заказчик поставит "не Windows" или будет под DOS-м просто? Что тогда с ПО мониторинга и "WIN-демоном" размонтирования? Под каждую ОС писать? Костыль. Пойдем дальше: представьте ситуацию с вирусней на машине, вирусня тоже отслеживает появление флешек и начнет писать на нее, а значит "демона" надо усовершенствовать - дабы еще и процессы отслеживал и вырубал перед размонтированием. Предел-ли? Навряд.


p.s.: а вообще, насчет "начальство выиграло тендер на поставку компов" и не посоветовалось по технической части по выполнению условий тендера, можно только посочувствовать подчиненным.
-=ЮрА=-
27.08.2012, 13:10
  #8

Не по теме:

Цитата Сообщение от VirusVoronezh Посмотреть сообщение
Надеюсь -=ЮрА=-, вы ещё загляните в эту тему ))
- заглянул, а что собственно требуется от меня?

VirusVoronezh
 Аватар для VirusVoronezh
1 / 1 / 0
Регистрация: 21.11.2008
Сообщений: 70
27.08.2012, 13:13  [ТС]     Отключение usb портов по отдельности #9
Цитата Сообщение от raxp Посмотреть сообщение
ну, могу готовым кодом размонтирования через SetupAPI поделиться, но на Delphi ...в комплекте "мини-HASP" свободно приложен.
Так, так, так... я согласен на любой язык программирования )) А что такое за зверь "мини-HASP", и о какой приложухи идёт речь!?!?! Что такое HASP ключики я знаю, юсб брелки, мы с такими работаем, к примеру у продукта VideoNet как раз они используются, у них в хасп ключ - является лицензией продукта, при запуске прога проверяет наличие хасп ключа, смотрит какая туда лицензия зашита ну и от него она и пляшет (т.е. включает те или иные функции)


Цитата Сообщение от raxp Посмотреть сообщение
Однако, появляется закономерный вопрос: железо вы поставили. А как же быть с ОС на ПК?
Тут всё ок, там по ТЗ мы им поставляли лиц 32bit Windows XP, поэтому с языками программирования всё нормально.

Цитата Сообщение от raxp Посмотреть сообщение
p.s.: а вообще, насчет "начальство выиграло тендер на поставку компов" и не посоветовалось по технической части по выполнению условий тендера
За именно этот тендер был ответственен конкретный менеджер, он там с руководством всё согласовывал... ну в этот раз невнимательно всё сделали, махнули рукой на этот пункт, а когда уже мы привезли в другой город компы на машине, то при демонстрации с нас начали всё чётко по пунктам... и вот отключение хабов в Диспетчере их нефига не устроило ))) А ещё у них в аудитории стояло дофига Kraftway ПК, на которых эта функция есть (я о отключении по отдельности usb портов)... вот так вот!

Там ещё кучу пунктов, которые было упущенно манегером (там компы должны на уровне bios'a ставить пароль на hdd, но мы им на этот пункт отмазались тем что у victoria 4 есть функция, которая позволяет паролить хдд, а на тех же kraftway'ях эта функция как раз в биосне есть....), вот так вот косячно выиграли мы тендер ))


Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- заглянул, а что собственно требуется от меня?
Пока ничего, через часик должен освободиться, изучу поподробней инфу из вашего поста, ну и если вдруг потребуется помощь, надеюсь потом загляните ещё сюда и подскажите )))
raxp
10140 / 6527 / 475
Регистрация: 28.12.2010
Сообщений: 21,167
Записей в блоге: 1
27.08.2012, 13:37     Отключение usb портов по отдельности #10
согласен на любой язык программирования
...
А что такое за зверь "мини-HASP"
на моем ресурсе статья по теме, в блогах тут сам компонент с исходниками, но суть не в этом: вам нужен лишь отдельный автономный модуль оттуда (из архива) - remove_usb.pas.

За именно этот тендер был ответственен конкретный менеджер, он там с руководством всё согласовывал
...
Там ещё кучу пунктов, которые было упущенно манегером
требуйте к вашей ЗПЛ + ЗПЛ менеджера и премию директорскую и... нам проценты

А ещё у них в аудитории стояло дофига Kraftway ПК, на которых эта функция есть (я о отключении по отдельности usb портов)... вот так вот!
вот так вот, народ избалован фичами, а вы их обделить хотели

Тут всё ок, там по ТЗ мы им поставляли лиц 32bit Windows XP, поэтому с языками программирования всё нормально.
выкрутились. А что насчет вирусней?

p.s.: вот по размонтированию тоже из утилит с открытым кодом - RemoveDrive http://www.cyberforum.ru/blogs/218284/blog627.html.
VirusVoronezh
 Аватар для VirusVoronezh
1 / 1 / 0
Регистрация: 21.11.2008
Сообщений: 70
27.08.2012, 16:24  [ТС]     Отключение usb портов по отдельности #11
Цитата Сообщение от raxp Посмотреть сообщение
на моем ресурсе статья по теме, в блогах тут сам компонент с исходниками, но суть не в этом: вам нужен лишь отдельный автономный модуль оттуда (из архива) - remove_usb.pas
raxp, почитал эту пдфку, не знаю почему там написан мини-хасп, видно из-за размеров? )) Ну у нас такие же хаспики, как на картинках в VideoNet'e используются, и кличут их просто хасп )) Но дела даже не в этом... чем мне эта статья поможет? Те куски кода, как я понял, нацелены на проверку ИД флешки, если он такой же как и в проге, то винда разлокируется, если нет флешки или ВИД не тот, то винда заблочена... но чем мне это может помочь? Как она не поможет определять порт, в какой подрублена флеха?


Цитата Сообщение от raxp Посмотреть сообщение
требуйте к вашей ЗПЛ + ЗПЛ менеджера и премию директорскую и... нам проценты
Ах если бы, ах если бы, не жизнь была, ахе если бы.... )))


Цитата Сообщение от raxp Посмотреть сообщение
А что насчет вирусней?
А что там не так с вируснёй?
raxp
10140 / 6527 / 475
Регистрация: 28.12.2010
Сообщений: 21,167
Записей в блоге: 1
27.08.2012, 17:00     Отключение usb портов по отдельности #12
Цитата Сообщение от VirusVoronezh
почитал эту пдфку, не знаю почему там написан мини-хасп, видно из-за размеров? )) Ну у нас такие же хаспики, как на картинках в VideoNet'e используются, и кличут их просто хасп )) Но дела даже не в этом... чем мне эта статья поможет? Те куски кода, как я понял, нацелены на проверку ИД флешки, если он такой же как и в проге, то винда разлокируется, если нет флешки или ВИД не тот, то винда заблочена... но чем мне это может помочь?
не читайте между строк мой совет. Специально для невнимательных:
Цитата Сообщение от raxp
вам нужен лишь отдельный автономный модуль оттуда (из архива) - remove_usb.pas.
====================

Цитата Сообщение от VirusVoronezh
А что там не так с вируснёй?
cнова для невнимательных:
Цитата Сообщение от raxp
вирусня тоже отслеживает появление флешек и начнет писать на нее, а значит "демона" надо усовершенствовать - дабы еще и процессы отслеживал и вырубал перед размонтированием.
====================

Цитата Сообщение от VirusVoronezh
Ах если бы, ах если бы, не жизнь была
на самом-то деле, решений множество. Подождем ваших наработок, материала для реализации вам накидано достаточно для самостоятельной работы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2012, 17:05     Отключение usb портов по отдельности
Еще ссылки по теме:

C++ 7. Написать программу, которая предлагает пользователю ввести массу в тоннах (дробное число) и выводит по отдельности количество тонн, килограммов и г
Не получается объединить работающие по отдельности функции C++
По отдельности работает, полностью нет C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
VirusVoronezh
 Аватар для VirusVoronezh
1 / 1 / 0
Регистрация: 21.11.2008
Сообщений: 70
27.08.2012, 17:05  [ТС]     Отключение usb портов по отдельности #13
Ах если бы, ах если бы, не жизнь была -- это было написан комментарий о доп. премии от зарплаты начальники манегера )))


Цитата Сообщение от raxp Посмотреть сообщение
Подождем ваших наработок, материала для реализации вам накидано достаточно для самостоятельной работы
Да, обдумаем, почитаем, попробую что-нить воспроизвести вечерком или завтра утром.
Yandex
Объявления
27.08.2012, 17:05     Отключение usb портов по отдельности
Ответ Создать тему
Опции темы

Текущее время: 08:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru