PDA

View Full Version : پیدا کردن درایو سی دی در برنامه دلفی



ebi_alijani
دوشنبه 09 تیر 1382, 09:10 صبح
می خواهم در برنامه دلفی بخشی از فایل ها ی داده ای از روی سی دی انتخاب شود. با چه دستوری می توانم نام درایو سی دی(cd ) را پیدا کنم. البته شاید از طریق لیست Drive combobox
اخرین عنصر این لست را پیدا کرد ولی در محیط های متصل به شبکه با تعدادی درایو مجازی
این کار مشکل خواهد بود. لطفا راهنمایی کنید.
ضمنا برای شروع کار با net.(با پیش زمینه دلفی) باید از کجا شروع کنم؟
با تشکر :علیجانی[/img]

مهدی کرامتی
سه شنبه 10 تیر 1382, 07:19 صبح
راه حل اول:

function FindFirstCDROMDrive: Char;
var
drivemap, mask: DWORD;
i: Integer;
root: string;
begin
Result := #0;
root := 'A:\';
drivemap := GetLogicalDrives;
mask := 1;
for i := 1 to 32 do
begin
if (mask and drivemap) <> 0 then
if GetDriveType(PChar(root)) = DRIVE_CDROM then
begin
Result := root[1];
Break;
end;
mask := mask shl 1;
Inc(root[1]);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMEssage('First CD drive is ' + FindFirstCDROMDrive);
end;
راه حل دوم:

function getcdroms: string;
var
i: Byte;
begin
Result := '';
for i := 65 to 90 do
if GetDriveType(Char(i) + ':\') = DRIVE_CDROM then
Result := Result + Char(i);
end;
راه حل سوم:

var
ch: Char;
s: string;
begin
for ch := 'D' to 'Z' do
begin
s := ch + ':\';
if GetDriveType(PChar(s)) = DRIVE_CDROM then
ShowMessage('CDROM is ' + s[1])
end;
end;

houshmand
چهارشنبه 18 تیر 1382, 11:27 صبح
for open CD door :قهقهه:

mciSendString('Set cdaudio door open wait',nil,0,0);


& for Close CD door :wink:


mciSendString('Set cdaudio door closed wait',nil,0,0);