若有多台光碟機,要如何知道那一台剛放入影片(VCD or DVD) |
尚未結案
|
morris_lee
一般會員 發表:2 回覆:3 積分:1 註冊:2005-01-18 發送簡訊給我 |
|
wyndog
資深會員 發表:7 回覆:362 積分:348 註冊:2004-10-12 發送簡訊給我 |
|
morris_lee
一般會員 發表:2 回覆:3 積分:1 註冊:2005-01-18 發送簡訊給我 |
|
chris_shieh
高階會員 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
請參考 http://www.undu.com/Articles/980221b.htm
"Notification of CD-ROM insertion and removal" (Delphi) 您可以下載作者已經製作好的元件和函式檔
http://www.undu.com/LIBS/cdevents.zip 使用方式 sample
unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, CDEvents; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private procedure AfterArrival(Sender: TObject; Drive: Char); procedure AfterRemove(Sender: TObject; Drive: Char); { Private declarations } public CDEvt:TCDEvents; { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.AfterArrival(Sender: TObject; Drive:Char); begin Showmessage('Detect ' Drive ': Disk arrival'); end; procedure TForm1.AfterRemove(Sender: TObject; Drive:Char); begin Showmessage('Detect ' Drive ': Disk removed'); end; procedure TForm1.FormCreate(Sender: TObject); begin CDEvt:=TCDEvents.Create(self); CDEvt.AfterArrival:=AfterArrival; CDEvt.AfterRemove:=AfterRemove; end; procedure TForm1.FormDestroy(Sender: TObject); begin CDEvt.Free; end; end.@瞭解越多.懂得越少@ |
linmon416
一般會員 發表:11 回覆:44 積分:11 註冊:2003-12-19 發送簡訊給我 |
你好:
試試下面的方法,這是取得所有CD-ROM的磁碟機代號和判斷有無光碟片的方法。
//uses Windows; Function GetCDList : String; Var I: Integer; Drives: Integer; Tmp: String; begin Drives := GetLogicalDrives; Result := ''; // units A=0 to el Z=25 For I := 0 To 25 Do If (((1 Shl I) And Drives)<>0) Then Begin Tmp := Char(65 I) ':\'; If (GetDriveType(PChar(Tmp))=DRIVE_CDROM) then begin if DiskSize(Ord(Char(65 I))-$40) <> -1 then ShowMessage('Disk in drive ' Char(65 I) ': !'); Result := Result Char(65 I); end; End; End; procedure TForm1.Button1Click(Sender: TObject); begin GetCDList; end;希望以上的方法,對你有幫助。 發表人 - linmon416 於 2005/03/11 10:26:23 發表人 - linmon416 於 2005/03/11 11:29:31 |
morris_lee
一般會員 發表:2 回覆:3 積分:1 註冊:2005-01-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |