![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение буквы CD [D6, Win95/98, WinXP]
Dastin © (2004-03-17 16:15:00)Уважаемые дельфийцы! Есть такой вопрос: Как определит букву CD и присвоить ее переменной. Если можно на примере и по возможности с пошаговыми комментариями.
Ozone (2004-03-19 11:28:00) [1]Вот писал недавно процедурку определения кол-ва доступной и свободной памяти на физических дисках.
Здесь перебираются все диски и определяется их тип (в твоем случае нужно проверять GetDriveType(tmp) = DRIVE_FIXEDDRIVE_CDROM)
procedure GetPhysMem(var mTotal, mFree: string);
var
Buff, tmp: LPTSTR;
s: string;
lpAFreeB, lpNumBytes, lpNumFreeBytes: PLargeINTEGER;
totalMemory, freeMemory: Extended;
begin
totalMemory := 0.0; freeMemory := 0.0;
GetMem(Buff,sizeof(LPTSTR)*255);
GetLogicalDriveStrings(255,Buff);
tmp := Buff;
while true do begin
s := tmp;
if s = '' then break;
if GetDriveType(tmp) = DRIVE_FIXED then begin
new(lpAFreeB); new(lpNumBytes);
GetDiskFreeSpaceEx(tmp, lpAFreeB^, lpNumBytes^, lpNumFreeBytes);
totalMemory := totalMemory + lpNumBytes^ / (1024*1024*1024);
freeMemory := freeMemory + lpNumFreeBytes^ / (1024*1024*1024);
dispose(lpAFreeB); dispose(lpNumBytes);
end;
tmp := tmp + length(tmp)+1;
end;
FreeMem(Buff,sizeof(LPTSTR)*255);
if totalMemory <> 0.0 then
mTotal := FormatFloat('0.00',totalMemory)+' Гб'
else
mTotal := '0 Гб';
if freeMemory <> 0.0 then
mFree := FormatFloat('0.00',freeMemory)+' Гб'
else
mFree := '0 Гб';
end;
Stvaffniy (2004-03-17 18:34:00) [2]Naydi u sebya v dirrektorii .....\Delphi\Sources\....
Kajetsy, file FileCtrl.pas v nem est´ vpolne prilichnyyj primer.
P.S. Esli oshibayus - izvinyayus, moyj komp daleko....
***ghost*** (2004-03-17 18:16:00) [3]Блин... я тоже над этим мужусь, пошаговои с примеромпожалуйста...
Jel (2004-03-17 16:25:00) [4]GetLogicalDriveStrings + GetDriveType в цикле. Учти, что CD в системе может быть не один.