16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE:CD-ROM Drive の開閉"
この発言は #01289 Fermion さんのRE:CD-ROM Drive の開閉 に対するコメントです
■概要
> CD-ROM Drive の開閉を行う関数です。OpenCloseCDROMDrive( False ) で
> Open、OpenCloseCDROMDrive( True ) で Close します。
nifty:FDELPHI/MES/16/1287 や nifty:FDELPHI/MES/16/1289 と
動作は同じですが、mciSendCommandでなく、mciSendStringを使ったサンプルです。
■動作確認
・PC9821 Windows95a + Delphi4
・自作DOS/V機 Windows98SE で動作確認。
・自作DOS/V機 WindowsMeで、DVD-ROMも開閉したとの報告もあります
■注意事項
・エラーチェック・例外処理等は適当に補って下さい。
・本サンプルは、ご自身の責任においてお試し下さい。
■サンプルコード1
CDが1ドライブのみの場合
//======================================================================
uses
MMSystem;
{...略...}
procedure OpenCloseCDROMDrive( fClose: Boolean );
begin
mciSendString('open cdaudio', nil, 0, 0);
try
if fClose then begin
mciSendString('set cdaudio door Closed', nil, 0, 0);
end
else begin
mciSendString('set cdaudio door open', nil, 0, 0);
end;
finally
mciSendString('close cdaudio', nil, 0, 0);
end;
end;
{...略...}
//======================================================================
■サンプルコード2
CD-ROM,CD-R,CD-RWなど、複数のドライブを持っている場合 ドライブとalias
を指定します。以下の例は、CDのドライブがQのとき
//======================================================================
uses
MMSystem;
{...略...}
procedure OpenCloseCDROMDrive( fClose: Boolean );
begin
{aliasをcdromdriveとしたので、(1)〜(3)までが「cdaudio」でなく
「cdromdrive」となっていることに注意}
mciSendString('open Q: type cdaudio alias cdromdrive', nil, 0, 0);
try
if fClose then begin
mciSendString('set cdromdrive door Closed', nil, 0, 0);//-----(1)
end
else begin
mciSendString('set cdromdrive door open', nil, 0, 0);//-----(2)
end;
finally
mciSendString('close cdromdrive', nil, 0, 0); //-----(3)
end;
end;
{...略...}
//======================================================================
■補足
Fermionさんのサンプルコードや、今回のサンプルコード1の場合、
コントロールパネルからマルチメディアを開いて「音楽CD」タブの
「CD-ROMドライブ」に指定しているドライブが開閉するようです。
Original document by おかぽん 氏 ID:(YIA00607)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|