Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

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

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

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


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

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


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

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


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

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


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

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


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


 
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;


 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.035 c
3-1081539621
Mishenka
2004-04-09 23:40
2004.05.09
Как удалить поле из таблицы?


9-1069968702
Fuinadan
2003-11-28 00:31
2004.05.09
Игра "Гонки" в исходниках.


1-1082369020
Dmitriy O.
2004-04-19 14:03
2004.05.09
Qreport не хочет печатать в NT


14-1082295870
Batoon
2004-04-18 17:44
2004.05.09
помогите!!! посоветуйте какую-нить прогу...


14-1081881570
panov
2004-04-13 22:39
2004.05.09
Где найти дополнительное время?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский