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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение и установка... ...скорости CD-привода. 
:(
    Опции темы
WIN32API
  Дата 12.4.2005, 15:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ребята, не подскажите как программно определить скорость CD-привода, а также установить ее, как это делает, например, CDSlow или утилитка, входящая в поставку с Неро?
  Вверх
~FoX~
Дата 12.4.2005, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


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

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



Цитата

Находим в интернете файл ASPI.pas (еще есть wnaspi32.pas), подключаем его к проекту, пишем следующий код:
Код

function SetCDSpeed(Host,Target:byte;Speed:integer):BOOL; 
var 
  dwASPIStatus: DWORD; 
  hEvent: THandle; 
  srbExec: SRB_ExecSCSICmd; 
begin 
  if Speed<176 then result:=false 
  else 
  begin 
  hEvent:=CreateEvent(nil, true, false, nil); 
  Fillchar(srbExec,sizeof(SRB_ExecSCSICmd),0); 
  srbExec.SRB_Cmd:= SC_EXEC_SCSI_CMD; 
  srbExec.SRB_Flags:= SRB_DIR_OUT or SRB_EVENT_NOTIFY; 
  srbExec.SRB_Target:= Target; 
  srbExec.SRB_HaId:= Host; 
  srbExec.SRB_Lun:= 0; 
  srbExec.SRB_SenseLen:= SENSE_LEN; 
  srbExec.SRB_CDBLen:= 12; 
  srbExec.SRB_PostProc:=Pointer(hEvent); 
  srbExec.CDBByte[0]:= $BB; // команда изменения скорости привода 
  srbExec.CDBByte[2]:= Speed shr 8; 
  srbExec.CDBByte[3]:= Speed; 
  srbExec.CDBByte[4]:= $FF; 
  srbExec.CDBByte[5]:= $FF; 
  ResetEvent(hEvent); 
  dwASPIStatus:= SendASPI32Command(@srbExec); 
  if dwASPIStatus=SS_PENDING 
  then 
  begin 
    WaitForSingleObject(hEvent,INFINITE); 
  end; 
  if srbExec.SRB_Status<>SS_COMP 
  then 
  begin 
    MessageBox(0,'Error processing the SRB.','Error',MB_OK); 
    result:=false; 
  end 
  else 
  result:=true; 
  end; 
end; 



Читайте FAQ или DRKB


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
WIN32API
  Дата 12.4.2005, 18:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











С установкой - понятно. А как прочитать текущую скорость? Кстати, пример использования бы не помешал??? Даже представленной функции.
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0488 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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