Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.09.03;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.033 c
15-1154773837
Lancelot
2006-08-05 14:30
2006.09.03
Java для мобильника


1-1153456424
Fynjy1984_
2006-07-21 08:33
2006.09.03
WebBrowser и TabSheet


1-1153376353
S@[ShocK]
2006-07-20 10:19
2006.09.03
Проблема мерцания движущегося объекта Shape или Image


15-1155305161
wl
2006-08-11 18:06
2006.09.03
Программка для получения реального URL к файлу


1-1153426862
oxffff
2006-07-21 00:21
2006.09.03
Триангуляция на Delphi. Готовое решение. Кто обладает





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский