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

Вниз

Как програмно узнать открыт CD-ROM или закрыт   Найти похожие ветки 

 
random ©   (2004-04-07 08:34) [0]

Скажите, как програмно узнать открыт CD-ROM или закрыт? Желательно с примером. (И укажите что там uses). Заранее благодарен.


 
(AD)acid ©   (2004-04-15 12:17) [1]

Есть функция GetDriveInformation или что-то в этом роде
она возвращает кроме остальных параметров и файловую систеиу
диска анализируй её

тип устройства можно узнать функцией GetDriveType

это я где-то в Faq видел и сам проверял

Смотри SDK GetDrive*


 
ssk   (2004-04-15 12:40) [2]

никак


 
Wiz@rd ©   (2004-04-15 18:00) [3]

Если тебе нужно знать открыть щас стдюк или закрыть - то пробуй так - если не открыть значит закрыть и наборот - по-моему mciSendCommand возвращает что-то если не удалось выполнить команду или пиши свой дров - хотя вряд ли поможет - cd-rom по-моему не даёт информацию о состоянии лотка


 
maxz ©   (2004-04-16 15:08) [4]

Можно отслеживать открытие/закрытие сидюка:

type
 TForm1 = class(TForm)
   Button1: TButton;
 private
   { Private declarations }
   procedure WMDeviceChange(var Message: TMessage);
     message WM_DEVICECHANGE;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}

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;


 
ssk   (2004-04-16 15:50) [5]

>maxz

это при наличии диска в приводе. а без диска?


 
juiceman ©   (2004-04-17 03:52) [6]

Видел несколько похожих топов и все они сходились к "никак".


 
juiceman ©   (2004-04-17 03:53) [7]

... и всегда мне было интересно "зачем это знать" ???



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.051 c
14-1083154220
csr
2004-04-28 16:10
2004.05.23
Thread creation error


3-1082726362
Polevi
2004-04-23 17:19
2004.05.23
sp_executesql


3-1082608051
GeRon
2004-04-22 08:27
2004.05.23
ADOQuery. Проблема с условием при использовании дат


14-1083743684
X9
2004-05-05 11:54
2004.05.23
Отображение кода программ в форумах.


14-1083252183
2963
2004-04-29 19:23
2004.05.23
Test





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский