|
Вопрос # 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)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|