Перевести 16-ричный ответ WMI в символьную строку - VB

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Столкнулся с проблемой получения серийного номера жесткого диска (не разделов) - тот, что на наклейке. WMI-запрос выдает ответ в таком виде:
2020202020202020202020203157304641444b57
А нужно в таком:
W1F0DAWK
1) Вопрос 1. Чисто математический: возможно ли перевести? (но не утверждаю, что первое число вообще содержит указанную строку) 2) Возможно, нужно что-нибудь изменить в запросе? Данную проблему решил для Windows 7 путем запуска скрипта с повышенными правами. Для XP проблема остается. Прилагаю 2 скрина (запуск "с правами" и без.) Сам скрипт VBScript/Visual Basic 6 (сформирован через Scriptomatic с правками):
Листинг программы
  1. Const wbemFlagReturnImmediately = &h10
  2. Const wbemFlagForwardOnly = &h20
  3. Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
  4. Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PhysicalMedia", "WQL", _
  5. wbemFlagReturnImmediately + wbemFlagForwardOnly)
  6. For Each objItem In colItems
  7. if instr(objItem.Tag, "DRIVE") <> 0 then msgbox "Tag: " & objItem.Tag & vblf & "SerialNumber: " & objItem.SerialNumber
  8. Next
На всякий случай - перевод на CMD лежит здесь: Полезные BAT/CMD скрипты Данная тема обсуждается также на форуме oszone. P.S. У некоторых пользователей проблема не наблюдается. Просьба отписать также в этой теме, если у Вас Bat-файл или скрипт дает правильный ответ без повышения прав.

Решение задачи: «Перевести 16-ричный ответ WMI в символьную строку»

textual
Листинг программы
  1. Sub bb()
  2. Dim s$, d$, i&
  3. s = "2020202020202020202020203157304641444b57"
  4. For i = 1 To Len(s) Step 4
  5.     d = d & Chr$("&h" & Mid$(s, i + 2, 2)) & Chr$("&h" & Mid$(s, i, 2))
  6. Next
  7. Debug.Print Trim(d)
  8. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы