Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / WinAPI (список дисков) / 7 сообщений из 7, страница 1 из 1
24.03.2013, 21:13
    #38196662
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinAPI (список дисков)
Всем привет!
Подскажите, пожалуйста, почему когда я использую следующий код, что бы получить список дисков на компьютере, получаю в списке также диски, которые не вижу в explorer? Выдает диски:
A:\
C:\
D:\
E:\
F:\
G:\
H:\
Z:\

Диски C, E,H, Z вижу в explorer, а другие нет.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
TCHAR szBuffer[1024];
::GetLogicalDriveStrings(1024, szBuffer);
TCHAR *pch = szBuffer;
while (*pch) {
	SendMessage(myCBS_LEFT,CB_ADDSTRING,NULL,(LPARAM) pch);
	pch += 4;
}


Заранее спасибо!
...
Рейтинг: 0 / 0
24.03.2013, 22:05
    #38196685
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinAPI (список дисков)
Наверное не совсем удачный код привел, уточню. Вот эта функция возвращает диски видимые и невидимые:
Код: plaintext
1.
::GetLogicalDriveStrings(1024, szBuffer);
...
Рейтинг: 0 / 0
24.03.2013, 22:41
    #38196697
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinAPI (список дисков)
MaximuS_GВот эта функция возвращает диски видимые и невидимые:
Нет, она возвращает допустимые имена дисков. В точности как и написано в её описании.
Ничего более.

Попробуй QueryDosDevice().
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.03.2013, 23:16
    #38196715
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinAPI (список дисков)
Dimitry SibiryakovMaximuS_GВот эта функция возвращает диски видимые и невидимые:
Нет, она возвращает допустимые имена дисков. В точности как и написано в её описании.
Ничего более.

Попробуй QueryDosDevice().

Спасибо, но, к сожалению, эта функция вернула вообще один диск :(
...
Рейтинг: 0 / 0
25.03.2013, 03:51
    #38196784
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinAPI (список дисков)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
#include <iostream>
#include <windows.h>

using namespace std;

//----------------------------------------
void get_drive_name1()
{
    cout<<"Use GetLogicalDrives():"<<endl;
    DWORD disks=GetLogicalDrives();

    char disk_name='A';
    for(int i=0;i<32;i++)
    {
        if(disks & 1)
        {
            cout<<disk_name<<endl;
        }

        disk_name++;
        disks>>=1;
    }

}
//----------------------------------------
void get_drive_name2()
{
    cout<<"Use GetDriveTypeA():"<<endl;

    unsigned int rez;
    char disk_name[]="A:\\";
    for(int i=0;i<26;i++)
    {
        rez=GetDriveTypeA(disk_name);
        switch(rez)
        {
            case DRIVE_FIXED:
                cout<<"FIXED - "<<disk_name<<endl;
                break;
            case DRIVE_CDROM:
                cout<<"CDROM - "<<disk_name<<endl;
                break;
            //case DRIVE_REMOVABLE:
            //case DRIVE_REMOTE:
            //case DRIVE_RAMDISK:
        }

        disk_name[0]++;
    }

}
//----------------------------------------
int main()
{
    get_drive_name1();

    get_drive_name2();

    return 0;
}
//----------------------------------------

...
Рейтинг: 0 / 0
25.03.2013, 04:46
    #38196787
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinAPI (список дисков)
MaximuS_GDimitry Sibiryakovпропущено...

Нет, она возвращает допустимые имена дисков. В точности как и написано в её описании.
Ничего более.

Попробуй QueryDosDevice().

Спасибо, но, к сожалению, эта функция вернула вообще один диск :(Значит либо у тебя действительно всего один диск, либо ты забыл что функция возвращает массив.
...
Рейтинг: 0 / 0
25.03.2013, 13:49
    #38197277
MaximuS_G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinAPI (список дисков)
m_Sla ,
интересный вариант, спасибо большое, попробую!

White Owl ,
я имел ввиду один диск в массиве :).

PS. На моем другом компьютере, функция GetLogicalDriveStrings, возвращает правильно все видимые диски... странно как-то :).
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / WinAPI (список дисков) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]