Форум: "Система";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
ВнизОпять про CD-Rom Найти похожие ветки
← →
Фагот (2003-06-10 15:08) [0]procedure TForm1.FormCreate(Sender: TObject);
var cycle: integer;
sy: Pchar;
begin
for cycle:=0 to 25 do
begin
sy:=PChar(ord("a")+cycle);
( sy) procedure TForm1.FormCreate(Sender: TObject);
var cycle: integer;
sy: Pchar;
begin
for cycle:=0 to 25 do
begin
sy:=PChar(ord("a")+cycle);
if GetDriveType(sy)=DRIVE_CDROM then ShowMessage(sy);
end;
end;
Выдаётся "Access violation..."
Что не так?
← →
Yanis (2003-06-10 15:15) [1]Может из-за винды, у тебя всего скорее NT стоит?
← →
Мое имя (клоны все равно суксь) (2003-06-10 15:16) [2]в 17-й
← →
Фагот (2003-06-10 15:16) [3]Двухтоннка Про. Ругается на ntdll.dll
← →
VMcL (2003-06-10 17:10) [4]>Фагот © (10.06.03 15:08)
sy:=PChar(ord("a")+cycle);
Это неправильно.
var
Drv: packed array [0 .. 3] of Char;
Cycle: Byte;
begin
Drv[1] := ":";
Drv[2] := "\";
Drv[3] := #0;
for Cycle := 0 to 25 do
begin
Drv[0] := Chr(Cycle);
if GetDriveType(Drv) = DRIVE_CDROM then //...
end;
end;
← →
Михайлов Антон (2003-06-11 01:52) [5]Ну мой код медь рабочий...
У мя на всех осях работает....
Procedure GetDriveType;
var
Disk: Char;
begin
for Disk := "A" to "Z" do
case GetDriveType(PChar(Disk+":\")) of
2:Memo1.lines.add("[Floppy]"+Disk+":\");
3:Memo1.lines.add("[HDD Partition]"+Disk+":\");
5:Memo1.lines.add("[CD-ROM]"+Disk+":\");
end;
end;
← →
stranger___ (2003-06-11 01:56) [6]Михайлов Антон © (11.06.03 01:52)
офигеть не встать
← →
Илайдж (2003-06-11 08:21) [7]http://delphimaster.net/view/7-1055223659/
Тестировано: Win2K, Win98.
← →
Леонид Федьков (2003-06-11 11:11) [8]Проверено. Работает всегда. (Делал по "козе" для определения типа драйва. Где взял "козу" - не помню.
procedure TDataModule1.Get_drive_cd;
{Определение логического имени CD-ROM }
var
PDrivers :Pchar;
Bufer : array [1..500] of char;
Stop : Boolean;
i : integer;
Z : String;
begin
PDrivers:=@Bufer;
GetLogicalDriveStrings(500,PDrivers);
Z:=""; Stop:=False;
for i :=1 to 500 do
begin
if Bufer[i]<>#0 then
begin
Z:=Z+Bufer[i];
Stop:=False;
end
else begin
if Stop then break
else begin
if GetDriveType(Pchar(Z))=DRIVE_CDROM then
begin
Drive_CD := Z;
end;
Stop:=true; Z:="";end;
end;
end;
end;
← →
@LE (2003-06-12 09:00) [9]function GetCDChar(var ch : Char) : Boolean;
var
s : array[0..255] of char;
c : PChar;
begin
Result := false;
GetLogicalDriveStrings(256, @s);
c := @s;
repeat
if GetDriveType(c) = DRIVE_CDROM then begin
Result := true;
ch := c^;
Break;
end;
while c^ <> #0 do c := c + 1;
c := c + 1;
until c^=#0;{}
end;
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c