Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.03;
Скачать: CL | DM;

Вниз

USB   Найти похожие ветки 

 
imbalacedees   (2006-08-04 17:44) [0]

Доброго времени суток.
К примеру подключили USB устройство, как его можно программно отключить. Как отлавливать момент подключения - разобрался. Как получать список устройств - тоже разобрался. А вот как отключить определенное устройство так и не смог понять.
Может кто ссылки подкинет.
С уважением
За ранее спасибо


 
clickmaker ©   (2006-08-04 18:55) [1]

http://net.mpei.ru/lang/rus/faqw2kxp/jsifaq/rh8496.htm


 
imbalacedees   (2006-08-05 00:45) [2]

Эту программу видел.
Просто такая ситуация - мне нужно программно ограничить подключение флэшек, за исключением 1-2(к примеру с определенными серийными номерами). Может что подскажете?


 
GanibalLector ©   (2006-08-09 00:36) [3]

Тут несколько вариантов.
Первый :зная букву флешки, вызываем CreateFile,а затем DeviceIoContro с
IOCTL_STORAGE_EJECT_MEDIA.
Второй : послать BroadcastSystemMessage с параметром DBT_DEVICEQUERYREMOVE

З.Ы. Сам,естественно,не проверял ;)


 
imbalacedees   (2006-08-10 00:08) [4]

Может кто поможет перевести на Delphi

HANDLE hVol;
BOOL   res;
 char   *volname;
  volname = "\\\\.\\H:";
   
   hVol = CreateFile(volname,
                     GENERIC_READ || GENERIC_WRITE,
                                       FILE_SHARE_READ || FILE_SHARE_WRITE,
                                       NULL,
                                       OPEN_EXISTING,
                                       FILE_ATTRIBUTE_NORMAL,
                                       0);
   
   if( hVol == INVALID_HANDLE_VALUE )
   {
       printf("Unable to open volume %s:\n", volname);
//        ErrShow(GetLastError());
       return;
   }

   DWORD nBytesReturned = 0;
   res = DeviceIoControl(hVol,IOCTL_STORAGE_EJECT_MEDIA ,
                                               NULL,
                                               0,
                                               NULL,
                                               0,
                                               &nBytesReturned,
                                               NULL);

IOCTL_STORAGE_EJECT_MEDIA - вот здесь компилятор Delphi пишет, что не может найти такую константу
BytesReturned - Что это такое?


 
ArtemESC ©   (2006-08-10 00:12) [5]

Что-то вроде такого

hVol: Handle;
res: boolean;
volname: PChar;

nBytesReturned: integer;

hVol := CreateFile(volname,
                    GENERIC_READ or GENERIC_WRITE,
                                      FILE_SHARE_READ or FILE_SHARE_WRITE,
                                      NULL,
                                      OPEN_EXISTING,
                                      FILE_ATTRIBUTE_NORMAL,
                                      0);
if ( hVol <> INVALID_HANDLE_VALUE ) then
     напечатать о невалидности

nBytesReturned := 0;

res := DeviceIoControl(hVol,IOCTL_STORAGE_EJECT_MEDIA ,
                                              NULL,
                                              0,
                                              NULL,
                                              0,
                                              &nBytesReturned,
                                              NULL);

& - хрен знает что такое...


 
ArtemESC ©   (2006-08-10 00:16) [6]

volname = "\\\\.\\H:"; забыл

volname := PChar("\\\\.\\H:");


 
clickmaker ©   (2006-08-10 10:51) [7]

volname := "\\.\H:";

слэши дублируются только в Си, там это спец-символ


> & - хрен знает что такое...

это операция взятия адреса. В дельфи @. Но многие апи-функции портированы с var-параметрами, поэтому там не надо никаких приставок


 
imbalacedees   (2006-08-10 16:36) [8]

Всем спаибо.
Еще вопрос.
При компиляции - ошибка, говорит IOCTL_STORAGE_EJECT_MEDIA - мол нет такой константы


 
ArtemESC ©   (2006-08-10 16:50) [9]

>>При компиляции - ошибка, говорит IOCTL_STORAGE_EJECT_MEDIA - мол нет >>такой константы

Узнай просто ее значение в си++ и подставь...


 
ArtemESC ©   (2006-08-10 16:55) [10]

Кажеться она равно этому:
$2D4808



Страницы: 1 вся ветка

Текущий архив: 2006.09.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.036 c
2-1155219452
ArchValentin
2006-08-10 18:17
2006.09.03
Какую базу выбрать?


15-1155209259
ArtemESC
2006-08-10 15:27
2006.09.03
Не найдеться ли у кого звуков пишущей машинки...


11-1132153562
-=Mike=-
2005-11-16 18:06
2006.09.03
Еще пара вопросов по TKOLListView


15-1154760816
McSimm
2006-08-05 10:53
2006.09.03
Пункт 2 правил форума


1-1153521032
Батя
2006-07-22 02:30
2006.09.03
WebBrowser