Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 0
Регистрация: 22.04.2019
Сообщений: 64

Серийник флэшки

10.03.2020, 14:25. Показов 1760. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Есть код который вытаскивает серийник флэшки (если путь прописать в creatfile) и почему то работает он только на виндовс 8-10, а на 7 выдаёт сплошную стрелочку вниз. Как это можно решить и почему это происходит (win 7 x64)
C++
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
#include <iostream>
#include <windows.h>
#include <Winioctl.h>
 
int main()
{
    DWORD dwBytesReturned;
    STORAGE_PROPERTY_QUERY query;
    STORAGE_DEVICE_DESCRIPTOR *buffer;
 
    buffer = new STORAGE_DEVICE_DESCRIPTOR[5];
 
    HANDLE hDrive = CreateFile(L"\\\\.\\PhysicalDrive0", 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
        OPEN_EXISTING, 0, NULL);
 
    memset((void *)&query, 0, sizeof (query));
    memset((void *)buffer, 0, sizeof (buffer));
 
    query.PropertyId = StorageDeviceProperty;
    query.QueryType = PropertyExistsQuery;
 
    query.PropertyId = StorageDeviceProperty;
    query.QueryType = PropertyStandardQuery;
 
    DeviceIoControl(hDrive, IOCTL_STORAGE_QUERY_PROPERTY, &query, sizeof(query),
        buffer, 500, &dwBytesReturned, NULL);
 
    if (buffer->VendorIdOffset != 0) {
        char *str = (char*)((char*)buffer + buffer->VendorIdOffset);
        cout << "VendorId: " << str << endl;
    }
    if (buffer->ProductIdOffset != 0) {
        char *str = (char*)((char*)buffer + buffer->ProductIdOffset);
        cout << "ProductId: " << str << endl;
    }
    if (buffer->ProductRevisionOffset != 0) {
        char *str = (char*)((char*)buffer + buffer->ProductRevisionOffset);
        cout << "ProductRevision: " << str << endl;
    }
    if (buffer->SerialNumberOffset != 0) {
        char *str = (char*)((char*)buffer + buffer->SerialNumberOffset);
        cout << "SerialNumber: " << str << endl;
    }
 
    CloseHandle(hDrive);
    delete[] buffer;
    
    system("pause");
}
Миниатюры
Серийник флэшки  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.03.2020, 14:25
Ответы с готовыми решениями:

Функции DeviceIoControl: вытащить серийник с флешки, диска
Здравствуйте! Помогите пожалуйста с помощью функции DeviceIoControl и CreateFile вытащить серийник с флэшки, диска и тд. Не понимаю как...

Автоматическое определение втыкания флэшки
мне необходимо сделать так, чтобы запущенная программа при втыкании флэшки понимала это и запускала какие-то действия

Извлечение флэшки с программы которая запущена с той же флэшки
Пишу типа авторана для флэшки. И там я хочу написать код который-би безопасно извлекал флэшку. Использую юнит который с большим трудом...

29
1 / 1 / 0
Регистрация: 22.04.2019
Сообщений: 64
10.03.2020, 22:14  [ТС]
Студворк — интернет-сервис помощи студентам
Помогло. Завтра потестирую всё до конца
0
1 / 1 / 0
Регистрация: 22.04.2019
Сообщений: 64
11.03.2020, 13:12  [ТС]
Проверил, всё равно выдает ту же стрелочку
Миниатюры
Серийник флэшки  
0
1 / 1 / 0
Регистрация: 22.04.2019
Сообщений: 64
11.03.2020, 13:25  [ТС]
"хз что как.exe": Загружено: "C:\Users\ADMIN\Documents\Visual Studio 2010\Projects\хз что как\Debug\хз что как.exe", Символы загружены.
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\ntdll.dll", Невозможно найти или открыть файл PDB
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\KernelBase.dll" , Невозможно найти или открыть файл PDB
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\msvcp100d.dll", Символы загружены.
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\msvcr100d.dll", Символы загружены.
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\apphelp.dll", Невозможно найти или открыть файл PDB
"хз что как.exe": Загружено: "ImageAtBase0x4a990000", Загрузка отключена параметром включения/исключения.
"хз что как.exe": Выгружено: "ImageAtBase0x4a990000"
Это в режиме откладке
0
 Аватар для zayats80888
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
11.03.2020, 14:06
Crash7x, У меня в 7 винде работает
Кликните здесь для просмотра всего текста
C++
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
#include <iostream>
#include <windows.h>
#include <Winioctl.h>
 
using namespace std;
 
int main()
{
    DWORD dwBytesReturned = 0;
    STORAGE_PROPERTY_QUERY query;
    STORAGE_DESCRIPTOR_HEADER info = { 0 };
    STORAGE_DEVICE_DESCRIPTOR *buffer = NULL;
 
    HANDLE hDrive = CreateFileW(L"\\\\.\\PhysicalDrive0", 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
        OPEN_EXISTING, 0, NULL);
 
    
    query.PropertyId = StorageDeviceProperty;
    query.QueryType = PropertyStandardQuery;
 
    DeviceIoControl(hDrive, IOCTL_STORAGE_QUERY_PROPERTY, &query, sizeof(query),
        &info, sizeof(info), &dwBytesReturned, NULL);
 
    if (dwBytesReturned)
    {
        dwBytesReturned = 0;
        buffer = (STORAGE_DEVICE_DESCRIPTOR*)new BYTE[info.Size];
        DeviceIoControl(hDrive, IOCTL_STORAGE_QUERY_PROPERTY, &query, sizeof(query),
            buffer, info.Size, &dwBytesReturned, NULL);
        if (dwBytesReturned)
        {
            if (buffer->VendorIdOffset != 0) {
                char *str = (char*)((char*)buffer + buffer->VendorIdOffset);
                cout << "VendorId: " << str << endl;
            }
            if (buffer->ProductIdOffset != 0) {
                char *str = (char*)((char*)buffer + buffer->ProductIdOffset);
                cout << "ProductId: " << str << endl;
            }
            if (buffer->ProductRevisionOffset != 0) {
                char *str = (char*)((char*)buffer + buffer->ProductRevisionOffset);
                cout << "ProductRevision: " << str << endl;
            }
            if (buffer->SerialNumberOffset != 0) {
                char *str = (char*)((char*)buffer + buffer->SerialNumberOffset);
                cout << "SerialNumber: " << str << endl;
            }
        }
        delete[] buffer;
        buffer = NULL;
    }
    
    CloseHandle(hDrive);
 
    system("pause");
}

0
1 / 1 / 0
Регистрация: 22.04.2019
Сообщений: 64
14.03.2020, 12:18  [ТС]
zayats80888, Я попробовал запустить на 3 разных компьютерах на разных windows 7 и ни где не работает даже ваш код.

Добавлено через 1 минуту
"хз что как.exe": Загружено: "C:\Users\ADMIN\Documents\Visual Studio 2010\Projects\хз что как\Debug\хз что как.exe", Символы загружены.
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\ntdll.dll", Невозможно найти или открыть файл PDB
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\KernelBase.dll" , Невозможно найти или открыть файл PDB
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\msvcp100d.dll", Символы загружены.
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\msvcr100d.dll", Символы загружены.
"хз что как.exe": Загружено: "C:\Windows\SysWOW64\apphelp.dll", Невозможно найти или открыть файл PDB
"хз что как.exe": Загружено: "ImageAtBase0x4a990000", Загрузка отключена параметром включения/исключения.
"хз что как.exe": Выгружено: "ImageAtBase0x4a990000"

Может быть это поможет понять почему не работает. Это режим отладки
0
 Аватар для zayats80888
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
14.03.2020, 12:27
Цитата Сообщение от Crash7x Посмотреть сообщение
Может быть это поможет понять почему не работает
это просто загрузка информации для отладки, оно никак не влияет на работу кода
0
 Аватар для zayats80888
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
14.03.2020, 12:28
Цитата Сообщение от Crash7x Посмотреть сообщение
Может быть это поможет понять почему не работает
это просто загрузка информации для отладки, оно никак не влияет на работу кода
0
1 / 1 / 0
Регистрация: 22.04.2019
Сообщений: 64
14.03.2020, 18:35  [ТС]
Но это странно тогда.
Почему оно не хочет работать? Ведь уже на 4 компах проверил и везде где 7 вин не работает. А на 10 и 8 работает норм

Добавлено через 3 минуты
И это происходит именно с флэшками. Жёсткие диски видит
0
1 / 1 / 0
Регистрация: 22.04.2019
Сообщений: 64
15.03.2020, 13:53  [ТС]
zayats80888, а это может зависить от компилятора?
0
 Аватар для zayats80888
6354 / 3525 / 1428
Регистрация: 07.02.2019
Сообщений: 9,008
15.03.2020, 14:01
Crash7x, на форуме есть специализированный раздел для WinAPI, там обитают эксперты, они помогут, т.к. я в WinAPI не шарю, к сожалению.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2020, 14:01

Внутри флэшки ярлык флэшки
Добрый день! Уже не знаю который день внутри флэшки лежит ярлык на саму флэшку через который можно открыть файлы.Но буквально вчера или...

Серийник к макросу
Здравствуйте. У меня имеется некий макрос который работает только на одном ПК (при запуске на другом вылазиет сообщение Bye, а на том...

Серийник для CS4
Суть проблемы следующая: Установил CS4 с кейгениным серийником. При запуске програм каждый день пишет одно замечение &quot;ваш серийник...

Кофеварка ZELMER серийник 10. 12, Алгоритм действия
Доброго дня , был на заявке по СМА , клиенты отдали кофеварку , скорее всего китайская , все что смог прочитать ZELMER серийник 10. 12...

Узнать серийник HDD, материнки, процессора
Нужен серийник харда, материнки, процессора Настаскивал с инета в кучу следующее using System; using System.Collections.Generic; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru