| 
| 
 | Вопрос # 5 832/ вопрос решён / | 
 |  Приветствую, уважаемые эксперты! Пытаюсь получить метку диска (HDD), таким способом:
 var
 VolumeName, FileSystemName : array [0..MAX_PATH] of Char;
 VolumeSerialNo : DWord;
 MaxComponentLength,FileSystemFlags: Cardinal;
 
 
 GetVolumeInformation(PChar(b.WordDisk),VolumeName,MAX_PATH,@VolumeSerialNo, MaxComponentLength,FileSystemFlags, FileSystemName,MAX_PATH);
 
 При использовании этой функции метки флешек и приводов (если там есть диск) показывает нормально, а вот метки HDD вообще не возвращает. Хоть метка написана по - русски хоть по - английски. Кто знает помогите.
 
|  |   Вопрос задал: eclipse (статус: Посетитель)Вопрос отправлен: 20 декабря 2011, 20:22
 Состояние вопроса: решён, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 22 декабря 2011, 11:12; участников в обсуждении: 2. 
|   | min@y™ (статус: Доктор наук), 21 декабря 2011, 08:28 [#1]:Я тупо взял один из примеров с Delphi World и сделал консольную программку. И всё работает. Вот он, попробуй. Если у тебя не сработает, значит дело не в программе. 
 program p5832;
 
{$APPTYPE CONSOLE}
 
uses
  Windows, SysUtils;
 
var
  VolumeName,
  FileSystemName : array [0..MAX_PATH-1] of Char;
  VolumeSerialNo : DWord;
  MaxComponentLength,FileSystemFlags: Cardinal;
begin
  GetVolumeInformation('C:\',
                       VolumeName,
                       MAX_PATH,
                       @VolumeSerialNo,
                       MaxComponentLength,
                       FileSystemFlags,
                       FileSystemName,
                       MAX_PATH);
  WriteLn('VolumeName = ', VolumeName);
  WriteLn('SerialNo =   ', IntToHex(VolumeSerialNo, 8));
  WriteLn('CompLen =    ', IntToStr(MaxComponentLength));
  WriteLn('Flags =      ', IntToHex(FileSystemFlags, 4));
  WriteLn('FSName =     ', FileSystemName);
 
  ReadLn;
end.Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | eclipse (статус: Посетитель), 21 декабря 2011, 11:14 [#2]:Блин... действительно работает в консольном варианте! Чё ж ей надо - то!? |  
|   | min@y™ (статус: Доктор наук), 21 декабря 2011, 11:39 [#3]: Цитата (eclipse): Блин... действительно работает в консольном варианте! Чё ж ей надо - то!?  Замени своё на это и забудь.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | eclipse (статус: Посетитель), 22 декабря 2011, 11:12 [#4]:Смешно получилось!... в том коде, который привёл выше, всё работает. Всё дело было в '\' этом знаке, а я в функцию запихивал напр.  C: , а нужно было C:\. Из-за такой мелочи поэтому нифига не возвращалась метка тома... только вот почему всё остальные метки считывались кроме HDD? Ну и пофиг... |  22 декабря 2011, 11:19: Статус вопроса изменён на решённый (изменил автор вопроса — eclipse) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |