Как узнать номер диска флешки
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] . текст программы. [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.
Модераторы: B.V.
‘> Как узнать порядковый номер подключенного диска или флэшки в системе ?
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
Сообщ. #1 , 25.09.09, 06:52
Рейтинг (т): нет
WINDOWS: ПУСК -> ПАНЕЛЬ УПРАВЛЕНИЯ -> АДМИНИСТРИРОВАНИЕ -> УПРАВЛЕНИ КОМПЬЮТЕРОМ -> ЗАПОМИНАЮЩИЕ УСТРОЙСТВА -> УПРАВЛЕНИ ДИСКАМИ
в этом окне отображаются все диски подключенные к ПК в том числе CD/DVD и FLASH носители и каждый из них пронумерован.
ВОПРОС: Как программно получить сисок таких устройств, путь к ним (типа: «C:\» и т.п.) и что самое важное НУМЕРАЦИЮ ?
Просьба не отсылать к поисковым службам, лучше дайте ссылку или молчите, а также кому не сложно приведите пример кода (можно и программу целиком )
Сообщ. #2 , 25.09.09, 07:13
Рейтинг (т): 61
GetLogicalDrivers(). Возвращает битовую маску. Каждый бит определяет наличие диска. Диски идут ‘A’, ‘B’, ‘C’ и т.д.
P.S. раздел неправильно выбран.
Сообщение отредактировано: D_KEY — 25.09.09, 07:14
Сообщ. #3 , 25.09.09, 11:55
Рейтинг (т): нет
D_KEY и каким образом использовать GetLogicalDrivers() чтобы узнать порядковый номер подключенного диска ?
К примеру у меня есть флешка я ей назанчил букву «Р» при этом в системе:
ПУСК -> ПАНЕЛЬ УПРАВЛЕНИЯ -> АДМИНИСТРИРОВАНИЕ -> УПРАВЛЕНИ КОМПЬЮТЕРОМ -> ЗАПОМИНАЮЩИЕ УСТРОЙСТВА -> УПРАВЛЕНИ ДИСКАМИ
она видна как «Диск 5»
Спомощью функций GetLogicalDrives, GetVolumeInformation и GetDriveType можно узнать:
1) Букву подключенного устройства
2) Тип этого устройства
3) Файловуюю систему
При желании можно узнать размер этого устройства (сколько занято/свободно места ../GB/MB/KB/B) и его серийный номер,
НО
меня интерисует его порядковый номер в системе при подключении!
В системе может быть сколько угодно дисков и флешек у всех разные буквы (могут идти в разброс!), но при этом каждое устройство сттрого пронумерованно в системе при подключении.
Посмотрите у себя : ПУСК -> ПАНЕЛЬ УПРАВЛЕНИЯ -> АДМИНИСТРИРОВАНИЕ -> УПРАВЛЕНИ КОМПЬЮТЕРОМ -> ЗАПОМИНАЮЩИЕ УСТРОЙСТВА -> УПРАВЛЕНИ ДИСКАМИ
Вот пример программки(ехе и исходники) с возможностями функций GetLogicalDrives, GetVolumeInformation и GetDriveType
Сильно не пинать, написал ее на скорую руку в Builder
Как узнать номер диска флешки

Как узнать серийный номер флешки
Серийный номер USB-накопителя можно узнать воспользовавшись встроенными средствами Windows. В данной статье разберем как это сделать.
Шаг 1 Одновременно на клавиатуре нажимаем Win+R и в открывшемся поле вводим команду regedit и нажимаем Ок.

Либо в строке поиска вводим команду вызова Редактора реестра regedit и нажимаем Enter.

Шаг 2 Открываем раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\
Откроется перечень папок с наименованием когда-либо подключаемых к данному ПК USB-накопителей. Выберите каталог, соответствующий названию флешки, серийный номер которой требуется узнать.

Шаг 3 Откроется вложенная папка. Именно её наименование без последних двух символов &0 и будет соответствовать искомому серийному номеру.
Как узнать серийный номер флешки в Windows
USB-флеш-накопитель, также известный как флеш-накопитель или флеш-карта памяти, это небольшое и портативное устройство, которое может хранить данные и передавать их между компьютерами. Он может быть полезен для резервного копирования файлов, установки программного обеспечения или переноса личной информации. Но как узнать серийный номер USB-флешки в Windows?
Серийный номер USB-флеш-накопителя — это уникальный идентификатор, который может помочь вам отслеживать ваше устройство, проверять статус гарантии или устранять любые проблемы. Существуют разные способы узнать серийный номер USB-флеш-накопителя в Windows в зависимости от версии операционной системы, которую вы используете. В этой статье мы покажем вам, как это сделать в Windows 10, Windows 8.1 и Windows 7.
Как узнать серийный номер флешки в Windows 10
Если вы используете Windows 10, вы можете узнать серийный номер USB-флешки, следуя этим шагам:
- Подключите флешку в доступный USB-порт на вашем компьютере.
- Откройте Проводник и щелкните на «Этот компьютер» в левой панели.
- Щелкните правой кнопкой мыши на своей USB-флешке и выберите «Свойства» в контекстном меню.
- Щелкните на вкладке «Оборудование» и выберите ее из списка устройств.
- Щелкните на кнопке «Свойства» внизу.
- Щелкните на вкладке «Сведения» и выберите «Путь экземпляра устройства» из выпадающего меню.
- Вы увидите строку символов, похожую на это: USBSTOR\DISK&VEN_SANDISK&PROD_CRUZER_GLIDE_3.0&REV_1.26\4C530001130926123456&0 . Серийный номер вашей USB-флешки — это часть после последнего обратного слеша, в данном случае это 4C530001130926123456 .
Как узнать серийный номер USB-флешки в Windows 8.1
Если вы используете Windows 8.1, вы можете узнать серийный номер флешки, следуя этим шагам:
- Подключите ее в доступный USB-порт на вашем компьютере.
- Откройте Проводник и щелкните на «Этот компьютер» в левой панели.
- Щелкните правой кнопкой мыши на своей USB-флешке и выберите «Свойства» в контекстном меню.
- Щелкните на вкладке «Оборудование» и выберите свою USB-флешку из списка устройств.
- Щелкните на кнопке «Свойства» внизу.
- Щелкните на вкладке «Тома» и нажмите на кнопку «Заполнить».
- Вы увидите таблицу с информацией о вашей флешке, включая её серийный номер, который обычно представляет собой четырехзначное число.
По Теме: Как перекинуть фото с компьютера на флешку
Как узнать серийный номер флешки в Windows 7
Если вы используете Windows 7, вы можете узнать серийный номер своей USB-флешки, следуя этим шагам:
- Подключите свою USB-флешку в доступный USB-порт на вашем компьютере.
- Откройте Проводник и щелкните правой кнопкой мыши на своей флешке, выберите «Свойства» в контекстном меню.
- Щелкните на вкладке «Оборудование» и выберите свою USB-флешку из списка устройств.
- Щелкните на кнопке «Свойства» внизу.
- Щелкните на вкладке «Сведения» и выберите «Идентификатор экземпляра устройства» из выпадающего меню.
- Вы увидите строку символов, похожую на это: USBSTOR\DISK&VEN_SANDISK&PROD_CRUZER_GLIDE_3.0&REV_1.26\4C530001130926123456&0 . Серийный номер вашей USB-флешки — это часть после последнего обратного слеша, в данном случае это 4C530001130926123456 .
Заключение
В этой статье мы показали вам, как узнать серийный номер USB-флешки в Windows 10, Windows 8.1 и Windows 7. Серийный номер может помочь вам опознать ваше устройство, проверить статус гарантии или устранить любые проблемы. Мы надеемся, что вы найдете эту статью полезной и информативной. Если у вас есть вопросы или комментарии, не стесняйтесь оставить их ниже.
Уникальный номер USB-диска (флешки)
У каждого устройства есть серийник, его можно посмотреть через DriveGetSerial. Но проблема в том, что если мы копируем образ, например через ULTRAISO то Serial так же копируется. А необходимо защитить скрипт, дабы он запускался только на конкретной флешке. Может есть у кого идеи?
Спасибо
_Lexa98_
Осваивающий
Сообщения 551 Репутация 25
При запуске прошраммы проверяй, соответствует ли сирийник записанный в файл/код с сирийником диска, если нет, то сразу выхожи из программы
madmasles
Модератор
Глобальный модератор
Сообщения 7,790 Репутация 2,321
_Lexa98_ [?]
При запуске прошраммы проверяй, соответствует ли сирийник записанный в файл/код с сирийником диска, если нет, то сразу выхожи из программы
OffTopic:
Интересно, Вы читаете свои сообщения перед отправкой?
Centrinar
Новичок
Сообщения 100 Репутация 1
И мой вопрос читали?
madmasles
Модератор
Глобальный модератор
Сообщения 7,790 Репутация 2,321
Centrinar [?]
И мой вопрос читали?
Серийный номер.
$objWMIService = ObjGet('winmgmts:\\.\root\cimv2') $colItems = $objWMIService.ExecQuery('Select * from Win32_PhysicalMedia') For $objItem In $colItems If $objItem.SerialNumber <> '' Then MsgBox(0, 'HDD serial number', $objItem.SerialNumber & @LF & $objItem.Tag) EndIf Next
Centrinar
Новичок
Сообщения 100 Репутация 1
Не пойму, а как прочитать номер флешки а не HDD
Yashied
Модератор
Команда форума
Глобальный модератор
Сообщения 5,379 Репутация 2,723
Серийный номер, это уникальный номер, присущий только конкретно данному устройству. Такие номера имеют, например, жесткие диски, процессоры, видеокарты (не все). Флешки — нет. Функция DriveGetSerial() возвращает серийный номер файловой системы, который никак не связан с самим устройством. Кроме того, этот номер изменится после форматирования диска или же его можно легко изменить программно.
Единственное, что можно сделать, это идентифицировать флешку по Device ID. Этот номер будет повторяться только для данной модели флешки данного производителя. Его можно посмотреть в свойствах диска, и имеет он примерно следующий вид:
VEN_&PROD_SILICON-POWER&REV_PMAP
Для большей уникальности сюда можно добавить тот же серйный номер файловой системы, количество цилиндров, головок, секторов и т.д, например
VEN_&PROD_SILICON-POWER&REV_PMAPNTFS142301716697325515631245248115
Далее, чтобы никто не догадался, берете от этой строки хеш, например MD5, и выводите его в виде GUID:
Это и будет «уникальный» номер вашей флешки. Сделать рабочую копию такой флешки можно только, если скопировать ее образ на точно такую же флешку того же производителя. В принципе, для большинства задач этого будет вполне достаточно. Для еще большего усложнения задачи можете взять редко встречающиеся флешки минимального объема.
Как теперь привязать скрипт к такой флешке? Создаете в корне оной скрытый текстовый или двойчный файл, содержащий соответствующий этой флешке GUID. Далее скрипт пытается прочитать со всех съемных дисков этот файл и сравнить ID с вычесленным значением для этого диска (на котором находится файл).
#Include ConsoleWrite(_UniqueUSBFlashID('G:') & @CR) Func _UniqueUSBFlashID($sDrive) Local $oService, $oItems, $Hash, $Disk = '', $Part = '', $Text = '' $oService = ObjGet('winmgmts:\\.\root\cimv2') If Not IsObj($oService) Then Return SetError(1, 0, '') EndIf $oItems = $oService.ExecQuery('SELECT * FROM Win32_LogicalDiskToPartition') If Not IsObj($oItems) Then Return SetError(2, 0, '') EndIf For $Property In $oItems If StringInStr($Property.Dependent, '"' & $sDrive & '"') Then $Part = StringTrimLeft($Property.Antecedent, StringInStr($Property.Antecedent, '=')) ExitLoop EndIf Next If Not $Part Then Return SetError(3, 0, '') EndIf $oItems = $oService.ExecQuery('SELECT * FROM Win32_DiskDriveToDiskPartition') If Not IsObj($oItems) Then Return SetError(2, 0, '') EndIf For $Property In $oItems If StringInStr($Property.Dependent, $Part) Then $Disk = StringTrimLeft($Property.Antecedent, StringInStr($Property.Antecedent, '=')) ExitLoop EndIf Next If Not $Disk Then Return SetError(3, 0, '') EndIf $oItems = $oService.ExecQuery('SELECT * FROM Win32_DiskDrive WHERE DeviceID = ' & $Disk) If Not IsObj($oItems) Then Return SetError(2, 0, '') EndIf For $Property In $oItems If $Property.InterfaceType = 'USB' Then $Text = StringTrimLeft($Property.PnPDeviceID, StringInStr($Property.PnPDeviceID, '&VEN_')) $Text = StringStripWS(StringLeft($Text, StringInStr($Text, '\', 0, -1) - 1), 8) $Text &= DriveGetFileSystem($sDrive) & DriveGetSerial($sDrive) $Text &= $Property.TotalCylinders $Text &= $Property.TotalHeads $Text &= $Property.TotalSectors $Text &= $Property.TotalTracks ExitLoop EndIf Next If Not $Text Then Return SetError(3, 0, '') EndIf $Hash = StringTrimLeft(_Crypt_HashData($Text, $CALG_MD5), 2) If Not $Hash Then Return SetError(4, 0, '') EndIf Return '' EndFunc ;==>_UniqueUSBFlashID