Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Откл. или блок дисковода 3.5'' 
:(
    Опции темы
JohnnY
Дата 18.10.2005, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 20.8.2005
Где: Калининград

Репутация: нет
Всего: нет



Я знаю как откл. CD-ROM, а как откл. или заблокировать дисковод 3.5"???
Please, подскажите...
PM MAIL WWW   Вверх
Albinos_x
Дата 19.10.2005, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 3
Всего: 108



ну под Win9х можно было поэкспериментировать со следующими адресами памяти:
$003F byte статус мотора FDD биты 0..3
$0040 byte обратный отсчёт до момента остановки мотора дисковода нач. знач 37 (~2с)
$0041 byte статус дисковода(ошибки)
$0042 7хbyte статус контролера дисковода

в Хр не знаю... может драйверу попробовать послать: PDCAR_D3_SUPPORTED


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Poseidon
Дата 23.10.2005, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 10
Всего: 133



Цитата(JohnnY @ 18.10.2005, 20:48)
Я знаю как откл. CD-ROM, а как откл. или заблокировать дисковод 3.5"???
Хех, вот мне интересно, в чем заключалось у тебя отключение CD-ROM. В блокировании лотка? Ну так с FDD такое не прокатит. ЧТо именно нужно? Сделать так, что бы FDD ничего не читал?



--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
JohnnY
Дата 6.12.2005, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 20.8.2005
Где: Калининград

Репутация: нет
Всего: нет



Подскажите как можно через Delphi установить блокировку(запрет) на чтение с дискеты(3.5 ")... Спасибо...
PM MAIL WWW   Вверх
Albinos_x
Дата 7.12.2005, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 3
Всего: 108



пользуйся поиском... точно помню... что кто-то задавал подобный вопрос...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
_hunter
Дата 7.12.2005, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



он и спрашивал smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Alexeis
Дата 7.12.2005, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Вот блокировка CD но надеюсь что будет работать для floppy
Код

procedure TMainForm.CD_Lock(Locked: Boolean, DriveLetter: string);
const
  IOCTL_STORAGE_MEDIA_REMOVAL = $002D4804;
var
  hDrive: THandle;
  Returned: DWORD;
  DisableEject: boolean;
begin
  hDrive := CreateFile(PChar('\\.\' + DriveLetter), GENERIC_READ,
    FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,
    0);
  if GetLastError <> 0 then
    MessageDlg('Error:' + IntToStr(GetLastError), mtError, [mbOK], 0);
  try
    DisableEject := Locked;
    if not DeviceIoControl(hDrive,
      IOCTL_STORAGE_MEDIA_REMOVAL, // PREVENT_MEDIA_REMOVAL,
      @DisableEject,
      SizeOf(DisableEject),
      nil,
      0,
      Returned,
      nil) then
      MessageDlg('Ошибка:' + IntToStr(GetLastError), mtError, [mbOK], 0)
  finally
    CloseHandle(hDrive)
  end;
end;
CD_Lock(True) - блокирует CD-ROM
CD_Lock(False) - разблокирует CD-ROM 

Для полного веселья можно заблокировать все CD-ROMы в системе через это: 

procedure TMainForm.LockCDROMs;
var
  w: dword;
  Root: string;
  i: byte;
begin
  w := GetLogicalDrives;
  Root := '#:\';
  for i := 0 to 25 do
  begin
    Root[1] := Char(Ord('A') + i);
    if (W and (1 shl i)) > 0 then
      if GetDriveType(PChar(Root)) = DRIVE_CDROM then
      begin
        DriveLetter := Copy(Root, 1, Length(Root) - 1);
        CD_Lock(True, DriveLetter)
      end
  end;
end;




--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
_hunter
Дата 7.12.2005, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



заблокировать лоток флопа... -- смешно...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Alexeis
Дата 7.12.2005, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 16
Всего: 459



Извиняйте и вправду глупость


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ne0n
Дата 7.12.2005, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



В принципи ничего в голову не приходит кроме такого варианта:

Сначала пишеш процедуру для поиска файлов на дискете(думаю найдешь как это сделать),

потом блокируешь каждый найденый файл следующим способом:
Код

...
var
 ...
fl: TFileStream;
...
{у меня файл блокировался по нажатию кнопки}

procedure TForm1.Button1Click(Sender: TObject);
begin

fl:=TFileStream.Create(Edit1.Text, fmOpenRead, fmShareDenyNone);{1-й парметр имя файла}

end;



Снятие блока осуществляется анолоично, только:
Код

fl.Free;


PM MAIL ICQ   Вверх
Albinos_x
Дата 7.12.2005, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 3
Всего: 108



думаю этим не заблокируешь дискету...но попробовать можно... можно попробовать поставить хук на работу с файлами дискеты...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
JohnnY
Дата 8.12.2005, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 20.8.2005
Где: Калининград

Репутация: нет
Всего: нет



Цитата(Poseidon @ 23.10.2005, 11:35)
Сделать так, что бы FDD ничего не читал?

Да именно так и нужно сделать, вставляешь дискету, заходишь в мой компьютер, кликаешь на дисковод, а он не читает и выводит сообщение, типа 'дисковод отключен!'

PM MAIL WWW   Вверх
JohnnY
Дата 8.12.2005, 01:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 20.8.2005
Где: Калининград

Репутация: нет
Всего: нет



Ничего ни помогает, у кого есть ещё идеи?
PM MAIL WWW   Вверх
Albinos_x
Дата 8.12.2005, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 3
Всего: 108



попробуй так:
Код
...
  s:=Edit1.Text;
   SetFileAccess(ReadWrite,DenyAll);
   FileOpen(s,FileMode);
...


должен работать по принципу предложенному ne0n
поиск файлов на диске на форуме есть... перебирай все файлы s:путь к файлу типа string и пропускай через этот код. По крайней мере открыть имеющиеся на дискете файлы не сможет...

Это сообщение отредактировал(а) Albinos_x - 8.12.2005, 02:19


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
JohnnY
Дата 8.12.2005, 02:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 20.8.2005
Где: Калининград

Репутация: нет
Всего: нет



Цитата(Albinos_x @ 8.12.2005, 02:06)
должен работать по принципу предложенному ne0n
поиск файлов на диске на форме есть... перебирай все файлы s:путь к файлу типа string и пропускай через этот код. По крайней мере открыть имеющиеся на дискете файлы не сможет...

Вроде идея понятна, но если не трудно подскажи как этот код выглядит полностью...Спасибо...
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0632 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.