![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Блокировка лотка CD-ROM [D6, Win2k, WinXP]
coolcat © (2003-03-08 23:08:00)Нужно научить программу блокировать лоток CD-привода (лоток привода не открывается ни программно, ни аппаратно).
Подскажите кто может.
easy (2003-03-09 15:12:00) [1]procedure tform1.LockUnlock(lu:boolean);
var
Buffer:array[0..1023] of char;
begin
if lu then controlcode:= FSCTL_LOCK_VOLUME else controlcode:= FSCTL_UNLOCK_VOLUME;
hDrive := CreateFile("\\.\F:",
GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
nil, OPEN_EXISTING, 0, 0);
{ if hDrive= INVALID_HANDLE_VALUE then
showmessage("dont CreateFile"); }
DeviceIoControl(hDrive,IOCTL_STORAGE_MEDIA_REMOVAL,@lu,sizeof(lu),nil,0,DummyReturnedBytes,nil);
FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, nil, GetLastError, LANG_NEUTRAL, @Buffer, 1024, nil);
ShowMessage(StrPas(Buffer));
CloseHandle(hDrive);
end;
maniyak (2003-03-09 12:54:00) [2]По FIDO разжевывали, есть юнит для НТей, пишите
Esc (2003-03-09 12:11:00) [3]Есть такой юнит VWin32.pas, там много полезностей...
Есть там такая ф-я LockRemovableMedia - вот она умеет блокировать кнопку CD-ROM"a(в Win98, в других не проверял), но остаётся возможность програмного извлечения лотка(Диск->Извлечь).
Романов Р.В. (2003-03-09 08:49:00) [4]AlexandrRya (08.03.03 23:51)
Самое прямое. Выключаем компьютер и окрыть лоток можно будет только с помощью отвертки
AlexandrRya (2003-03-08 23:51:00) [5]Не знаю, какое отношение имеет ExitWindowsEx к сабжу, но я когда-то яспользовал DeviceIOControl, правда ее использование очень сильно отличается в 9x, Me от 2k,NT,XP, и, если щелкнуть по диску правой копкой, выбрать Извлечь, то винда покажет окно, что диск заблокирован, и предложить разблокировать его (нажать Ок или Да - не помню), после чего все же извлечет диск, ну а в остальном - все нормально.
Романов Р.В. (2003-03-08 23:13:00) [6]ExitWindowsEx
Song (2003-03-08 23:10:00) [7]MCISendString()