Как определить установленные диски
От: Липатов Андрей Юрьевич Россия  
Дата: 21.02.02 23:01
Оценка:
Надо определить установленные физ. диски и логические диски на них под NT/2000/XP, а так же в 9x.
QueryDosDevice в NT возвращает их по отдельности (в смысле непонятно какие лог. диски на каких приводах),
в реестре просто каша, черт ногу сломит. Может быть есть какие либо API функции для этого?.

Помогите пожалуйста, я уже с ума схожу!
Липа
Re: Как определить установленные диски
От: User99  
Дата: 22.02.02 07:27
Оценка:
Здравствуйте Липатов Андрей Юрьевич, Вы писали:

ЛАЮ>Надо определить установленные физ. диски и логические диски на них под NT/2000/XP, а так же в 9x.

ЛАЮ>QueryDosDevice в NT возвращает их по отдельности (в смысле непонятно какие лог. диски на каких приводах),
ЛАЮ>в реестре просто каша, черт ногу сломит. Может быть есть какие либо API функции для этого?.

ЛАЮ>Помогите пожалуйста, я уже с ума схожу!


Вот
    n=GetLogicalDriveStrings(0,NULL);//получаем размер нужного буфера
        pwchar=(wchar_t*)calloc(n,sizeof(wchar_t));
        GetLogicalDriveStrings(n,pwchar);  //получили строку с именами дисков "a:\\\0C:\\\0d:\\\0\0"(уточни по справке)
        result.assign(pwchar,n-1);

        int i=0;
        wstring f; f=(wchar_t)0;
        for(n=result.find(f,0);n!=-1;n=result.find(f,i) )
        {
            wstring t=result.substr(i,n);
            UINT r=GetDriveType(t.c_str());
            if( (DRIVE_REMOTE !=r)&&(DRIVE_FIXED!=r))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.