![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с USB
Igor_thief © (2005-09-08 17:55:00)Как отловить момент вставки USB flash drive и запустить с него определенный файл, если онный присутсвует?
Игорь Шевченко (2005-09-20 11:35:00) [1]
> Я ведь не спросил как обойти баг, я просто сказал что он
> присутсвует
Это не баг.
Igor_thief (2005-09-19 19:18:00) [2]Игорь Шевченко © (18.09.05 21:12) [25]
Понятное дело, что решение состоит в выборе другой быквы. Я ведь не спросил как обойти баг, я просто сказал что он присутсвует.
REA (19.09.05 10:29) [26]
Про авторан зря сомневаешься.
Я воспользовался вариантом [9].
Всем спасибо!
REA (2005-09-19 10:29:00) [3]Че то вы ушли от топика. Если авторан не работает, что сомнительно, то можно использовать [9] или готовый компонент для работы с USB на джедайском сайте. Правда он для HID устройств, но может подойдет.
Игорь Шевченко (2005-09-18 21:12:00) [4]Igor_thief (18.09.05 17:42) [24]
> А что, может хотите сказать что это правильная работа?
Локальные диски всегда имеют приоритет при назначении букв, так Windows устроена. Они по времени раньше определяются. Хочешь изменить поведение - назначь в Disk Adminstrator флешке букыу, не пересекающуюся с буквами сетевых дисков, это несложно.
Igor_thief (2005-09-18 17:42:00) [5]Игорь Шевченко © (18.09.05 13:34) [22]
А что, может хотите сказать что это правильная работа?
Anatoly Podgoretsky © (18.09.05 13:44) [23]
А чей?
Anatoly Podgoretsky (2005-09-18 13:44:00) [6]Igor_thief (17.09.05 13:17) [19]
Это баг, но не системы.
Игорь Шевченко (2005-09-18 13:34:00) [7]Igor_thief (17.09.05 13:17) [19]
А почему это баг ?
Igor_thief (2005-09-17 18:52:00) [8]DrPass © (17.09.05 15:33) [20]
А если хочется/надо, то что?
DrPass (2005-09-17 15:33:00) [9]А ты не присваивай сетевому диску ту букву, которую использует флешка :)
Igor_thief (2005-09-17 13:17:00) [10]Игорь Шевченко © (16.09.05 20:42) [15]
Боюсь, что баг в другом месте.
Нет, боюсь что таки в винде. Баг заключается в следующем:
1. Вставьте флэшку в юсб (запомните букву подсоединяемого диска; например F);
2. Извлеките флэшку;
3. Подсоедините сетевой диск (Сетевое окружение: Меню сервис->подключить сетевой диск) и в качестве буквы укажите ту, которую запомнили в пункте 1 (F);
4. Теперь снова подсоедините флэшку;
Вуаля! Смотрим что мы видим в качестве диска F. Прикольно? А теперь снова отсоединяем флэшку/сетевой диск и снова смотрим что получилось. Вот так вот!
Игорь Шевченко (2005-09-16 22:10:00) [11]iskatel © (16.09.05 21:41) [17]
> не знаю, я в 2000 пробовал
"Windows XP reflects the rapid growth of consumer multimedia with an expanded Autoplay feature. In addition to refining the existing Autorun.INF mechanism, audio CD Autoplays, and DVD video Autoplay, support has been added to handle digital music (WMA/MP3), graphics, video, CD burning, video cameras, and other hardware devices"
Почему спрашиваю про XP, потому что в XP отключал возможность Autoplay для магнитооптических дисков путем правки реестра. А где выключается, там и включается.
iskatel (2005-09-16 21:41:00) [12]не знаю, я в 2000 пробовал
OldNaum (2005-09-16 21:39:00) [13]Igor_thief (16.09.05 20:03) [12]
"баг" в студию ) а то аж заинтриговал )
Игорь Шевченко (2005-09-16 20:42:00) [14]Igor_thief (16.09.05 20:03) [12]
> надыбал в винде БАГ!
Боюсь, что баг в другом месте.
iskatel © (16.09.05 20:05) [13]
> сами то пробовали авторан? я пробовал -на флешке не работает
В XP тоже не работает ?
Igor_thief (2005-09-16 20:08:00) [15]iskatel © (16.09.05 20:05) [13]
А никто и не говорил что работает!
iskatel (2005-09-16 20:05:00) [16]сами то пробовали авторан? я пробовал -на флешке не работает
Igor_thief (2005-09-16 20:03:00) [17]Реализовывая сабж. надыбал в винде БАГ! Проверял на нескольких машинах - внатуре баг.
Igor_thief (2005-09-10 17:50:00) [18]Большое всем спасибо! Буду играться:)
Virgo_Style (2005-09-10 09:01:00) [19]Virgo_Style © (10.09.05 8:59) [9]
type
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
procedure WMDeviceChange(var Message: TMessage);
message WM_DEVICECHANGE;
public
{ Public declarations }
end;
Virgo_Style (2005-09-10 08:59:00) [20]Некоторые события USB-устройств ловятся так:
const DBT_DEVICEARRIVAL = $8000;
const DBT_DEVICEQUERYREMOVE = $8001;
const DBT_DEVICEQUERYREMOVEFAILED = $8002;
const DBT_DEVICEREMOVEPENDING = $8003;
const DBT_DEVICEREMOVECOMPLETE = $8004;
const DBT_DEVICETYPESPECIFIC = $8005;
const DBT_CONFIGCHANGED = $0018;
procedure TForm1.WMDeviceChange(var Message: TMessage);
var
s : string;
begin
{Do Something here}
case Message.wParam of
DBT_DEVICEARRIVAL :
s := 'A device has been inserted and is now available';
DBT_DEVICEQUERYREMOVE: begin
s := 'Permission to remove a device is requested';
ShowMessage(s);
{True grants premission}
Message.Result := integer(true);
exit;
end;
DBT_DEVICEQUERYREMOVEFAILED :
s := 'Request to remove a device has been canceled';
DBT_DEVICEREMOVEPENDING :
s := 'Device is about to be removed';
DBT_DEVICEREMOVECOMPLETE :
s := 'Device has been removed';
DBT_DEVICETYPESPECIFIC :
s := 'Device-specific event';
DBT_CONFIGCHANGED :
s:= 'Current configuration has changed'
else s := 'Unknown Device Message';
end;
ShowMessage(s);
inherited;
end;
Откуда взял - не помню...