要在delphi程式中控制cd-rom的彈出和關閉,可以利用mmsystem.pas單元的mci(media control inte***ce)函式。有2個函式可以達到同樣的效果。乙個是mcisendcommand函式,另乙個是mcisendstring函式。下面分別用這2個函式寫的opencddrive函式。
1、使用mcisendcommand:
function opencddrive(isopen: boolean; drivename:
char=#
0): boolean;
varop: tmci_open_parms;
flags: longword;
begin
fillchar(op, sizeof(tmci_open_parms), 0);
op.lpstrdevicetype :
=pchar(mci_devtype_cd_audio);
flags :
=mci_open_type or mci_open_type_id;
ifdrivename
<>#0
then
begin
op.lpstrelementname :
=pchar(drivename +'
:');
flags :
=flags or mci_open_element;
end;
result :
=mcisendcommand(
0, mci_open, flags, longword(@op)) =0
;ifnot result then exit;
ifisopen then
mcisendcommand(op.wdeviceid, mci_set, mci_set_door_open, 0)
else
mcisendcommand(op.wdeviceid, mci_set, mci_set_door_closed, 0);
mcisendcommand(op.wdeviceid, mci_close, mci_wait, 0);
end;
2、使用mcisendstring:
function opencddrive(isopen: boolean; drivename:
char=#
0): boolean;
vars:
string
;begin
ifisopen then s :='
open
'else
s :=
'closed';
ifdrivename =#
0then
result :
=mcisendstring(pchar(
'set cdaudio door '+
s), nil, 0,
0) =0
else
begin
result :
=mcisendstring(pchar(
'open '+
drivename +'
: type cdaudio alias cdrom
'), nil, 0,
0) =0
; if result then
begin
mcisendstring(pchar(
'set cdrom door '+
s), nil, 0,
0);mcisendstring(
'close cdrom
', nil, 0,
0);end;
end;
end;
opencddrive函式有2個引數,isopen為true彈出cd-rom,false關閉rd_rom;drivename為cd-rom驅動器名稱,預設為#0。返回true成功,否則失敗。
開啟和關閉預設cd-rom,即第乙個cd-rom驅動器可以分別用:
opencddrive(true);和opencddrive(false);
使用cd-rom驅動器名稱呼叫可以分別為(假設cd-rom驅動器名稱為「f:」):
opencddrive(true, 'f');和opencddrive(false, 'f');
如有錯誤請指正:[email protected]
Delphi程式中彈出和關閉CD ROM
要在delphi程式中控制cd rom的彈出和關閉,可以利用mmsystem.pas單元的mci media control inte ce 函式。有2個函式可以達到同樣的效果。乙個是mcisendcommand函式,另乙個是mcisendstring函式。下面分別用這2個函式寫的opencddri...
在Service中彈出Toast和Dialog
眾所周知,toast必須在ui主線程上才能正常顯示,而在service中是無法獲得acivity的context的,在service中想顯示出toast只需將show的訊息傳送給主線程looper就可以了 handler handler new handler looper.getmainloope...
在MFC程式中彈出命令列視窗除錯
這就是在mfc程式中彈出命令列視窗除錯。1 include 2 在需要開啟控制台視窗的地方呼叫 allocconsole 注意檢查返回值 3 freopen conout w stdout 這句話不管是否有中文出現都要加進去,否則會出現不顯示情況 4 在需要輸出除錯的時候呼叫 cprintf等函式 ...