Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Определение буквы CD   Найти похожие ветки 

 
Dastin   (2004-03-17 16:15) [0]

Уважаемые дельфийцы! Есть такой вопрос: Как определит букву CD и присвоить ее переменной. Если можно на примере и по возможности с пошаговыми комментариями.


 
Jel ©   (2004-03-17 16:25) [1]

GetLogicalDriveStrings + GetDriveType в цикле. Учти, что CD в системе может быть не один.


 
***ghost***   (2004-03-17 18:16) [2]

Блин... я тоже над этим мужусь, пошагово и с примером пожалуйста...


 
Stvaffniy ©   (2004-03-17 18:34) [3]

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....


 
Ozone ©   (2004-03-19 11:28) [4]

Вот писал недавно процедурку определения кол-ва доступной и свободной памяти на физических дисках.
Здесь перебираются все диски и определяется их тип (в твоем случае нужно проверять 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;



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
3-1082021831
Manfred7
2004-04-15 13:37
2004.04.11
База на Acces. Как обеспечивать блокировку изменяемых записей?


1-1082556913
russko
2004-04-21 18:15
2004.04.11
Ошибка: Invalid floating point operation


1-1082709046
RAIN
2004-04-23 12:30
2004.04.11
Зарегестрировать определенные клавиши


6-1079332218
pave
2004-03-15 09:30
2004.04.11
TClientSocket в консольном приложении


9-1071397714
Zeqfreed
2003-12-14 13:28
2004.04.11
Проблема с динамическим массивом