Главная страница
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.47 MB
Время: 0.02 c
1-74752
LORD
2002-12-10 22:23
2002.12.23
как c: temp proba.txt поделть на имя и путь


1-74810
denis24
2002-12-11 16:36
2002.12.23
Stringgrid


14-74967
начинающий програмер
2002-12-03 11:19
2002.12.23
Надеюсь на вашу помощь


3-74569
Oleg_Em
2002-12-04 13:41
2002.12.23
вызов функции в запросе ....


4-75035
BadBoy.Sergey
2002-11-10 01:02
2002.12.23
Как вызвать окно