как обойти ошибку времени выполнения VBScript для несоответствия типа; код: 800a000D

возможно, я делаю это неправильно, но я пытаюсь изменить VBScript для поиска ключа продукта Windows для поддержки поиска ключа продукта для Microsoft Office Pro. Вот код, но я хотел бы, чтобы имя папки "unknown" имело тот же эффект, что и подстановочный знак. Я знаю, что фактический подстановочный знак невозможен в VBScript, но что я могу сделать, чтобы вернуть значение реестра для "DigitalProductID" в сценарии без указания папки "неизвестно"? Или я где-то меняю код еще?

Set WshShell = CreateObject("WScript.Shell")
MsgBox ConvertToKey(WshShell.RegRead("HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftOffice.0RegistrationunknownDigitalProductId"))

Function ConvertToKey(Key)
Const KeyOffset = 52
i = 28
Chars = "BCDFGHJKMPQRTVWXY2346789"
Do
Cur = 0
x = 14
Do
Cur = Cur * 256
Cur = Key(x + KeyOffset) + Cur
Key(x + KeyOffset) = (Cur  24) And 255
Cur = Cur Mod 24
x = x -1
Loop While x >= 0
i = i -1
KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput
If (((29 - i) Mod 6) = 0) And (i <> -1) Then
i = i -1
KeyOutput = "-" & KeyOutput
End If
Loop While i >= 0
ConvertToKey = KeyOutput
End Function
6
задан kdave001
20.11.2022 4:13 Количество просмотров материала 3493
Распечатать страницу

1 ответ

следующий простой скрипт перечисляет подразделы данного раздела реестра:

Option Explicit
On Error Goto 0

Dim strLog, strComputer, objRegistry, strKeyPath, key, arrsubKeys

strLog = ""
strComputer = "."

Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\" _
      & strComputer & "\root\default:StdRegProv")

strKeyPath = "SOFTWARE\Wow6432Node\Microsoft\Office.0\Registration\"
strKeyPath = "SOFTWARE\Wow6432Node\Adobe\"    '''' key path for demonstration 

strLog = strLog & vbNewLine & "subkeys of HKLM\" & strKeyPath

objRegistry.EnumKey HKLM, strKeyPath, arrsubKeys

If VarType( arrsubKeys) = 8204 Then
    For Each key In arrsubKeys
        strLog = strLog & vbNewLine & key
    Next
End If

Wscript.Echo strLog
Wscript.Quit

' useful constants '
' Registry: Braches and Corresponding Hexadecimal Values '
Const HKCR = &H80000000 'HKEY_CLASSES_ROOT
Const HKCU = &H80000001 'HKEY_CURRENT_USER
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
Const HKU  = &H80000003 'HKEY_USERS
Const HKCC = &H80000005 'HKEY_CURRENT_CONFIG
Const HKDD = &H80000006 'HKEY_DYN_DATA
0
отвечен JosefZ 2022-11-21 12:01

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

command-line
microsoft-office
microsoft-office-2010
script
vbscript
Вверх