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

Вниз

Что то я не разберусь с GetVolumeInformation!   Найти похожие ветки 

 
Alexander ©   (2002-11-09 20:36) [0]

Точнее работаю я сней давно и вроде глюков не замечал, но вот написал такой код и он не хочет работать:

function GetFileSystem(RootPath: PChar): string;
var
MaximumComponentLength: DWORD;
FileSystemFlags: DWORD;
FileSystemName: array [0..1024] of Char;
begin
if not GetVolumeInformation(RootPath, nil, 0, nil, MaximumComponentLength, FileSystemFlags,
FileSystemName, SizeOf(FileSystemName)) then
Result := SysErrorMessage(GetLastError)
else
Result := FileSystemName;
end;


после этого на форму кидаю метку, кнопку и едит.
в обработчике кнопки написал
begin
// Edit1.Text := "C:\";
Label1.Caption := GetFileSystem(PChar(Edit1.Text));
end;

запускаю, набираю в Edit1 C:\ - пишет, что указанный путь не найден! проверил на нескольких машинах. Если после этого задать какой нибудь другой реально существующий в системе диск (напр. А:\), то пишет, что устройство не готово и после этого при наборе C:\ выдаёт то, что ожидалось - "NTFS".
Если же перед запуском проги раскомментировать строку, то показывает правильно с первого раза!

В чём прикол?


 
Snap ©   (2002-11-09 20:55) [1]

Наверное string неправильно в pchar перерабатывается. Попробуй StrPCopy


 
Alexander ©   (2002-11-09 21:08) [2]

Не помогло, добавил:
Root: array[0..3] of Char;
begin
StrPCopy(Root, Edit1.Text);
Label1.Caption := GetFileSystem(Root);
end;

эффект тот-же, хотя Root=["C",":","\",#0]


 
Snap ©   (2002-11-09 21:10) [3]

а если вот так

Root: array[0..3] of Char;
begin
StrPCopy(Root, Edit1.Text);
Label1.Caption := GetFileSystem( @Root[0]);
end;


 
Alexander ©   (2002-11-09 21:16) [4]

Не помогло :(( - тестирую стразу на нескольких машинах (2000, XP)
я теперь до утра отключаюсь


 
Alexander ©   (2002-11-10 08:12) [5]

У кого какие идеи будут?


 
Song ©   (2002-11-10 09:02) [6]

Я думаю ошибка в памяти. AV не возникает?
Используйте тип PDWord



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
1-74729
Oxigen
2002-12-10 20:55
2002.12.23
Как правильно работать с WideString


14-74884
Anatoly Podgoretsky
2002-11-30 11:54
2002.12.23
Именинники 30 ноября


7-75021
turonix
2002-10-17 13:01
2002.12.23
Как получить идентификатор окна кнопки


1-74839
Tundra
2002-12-12 09:30
2002.12.23
если использовать setlength призакрытии вылетает ошибка.


4-75063
Atamali Mamedov
2002-11-09 12:06
2002.12.23
ojidat konech programmi