テスト自動化のために、特定のキーがレジストリで生成されているかどうかを確認する必要があります。これまでのところ、私はこのスクリプトを持っています:
'Registry Path
Const HKCR = &H80000000 'HKEY_CLASSES_ROOT (0)
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE (1)
Dim oReg: Set oReg = GetObject("winmgmts:!root/default:StdRegProv")
'Dim Arrays
Dim RegRootArray(1)
Dim RegMachineArray(6)
Dim CurrentArray()
'HKEY_CLASSES_ROOT Array
RegRootArray(0) = "AlmBtPgLib.ALMPlugIn.1\CLSID"
RegRootArray(1) = "AlmBtPgLib.ALMPlugIn\CurVer"
'HKEY_LOCAL_MACHINE Array
RegMachineArray(0) = "SOFTWARE\Macrovision\FlexNet Publisher"
RegMachineArray(1) = "SOFTWARE\Company\SWS\PlugIns\AlmBtPgLib.ALMPlugIn"
RegMachineArray(2) = "SYSTEM\ControlSet001\services\FlexNet Licensing Service"
RegMachineArray(3) = "SYSTEM\CurrentControlSet\services\FlexNet Licensing Service"
RegMachineArray(4) = "SOFTWARE\Company\LMS"
RegMachineArray(5) = "SYSTEM\CurrentControlSet\services\aksfridge"
RegMachineArray(6) = "SYSTEM\CurrentControlSet\services\hasplms"
'Loop through both Arrays and check Registry
For i = 0 To 1
If i=0 Then
ReDim CurrentArray(UBound(RegRootArray)) 'Copy Values from RegRootArray to CurrentArray
For arrI1 = LBound(RegRootArray) To UBound(RegRootArray)
CurrentArray(arrI1) = RegRootArray(arrI1)
Next
Key = HKCR
Else
ReDim CurrentArray(UBound(RegMachineArray)) 'Copy Values from RegMachineArray to CurrentArray
For arrI2 = LBound(RegMachineArray) To UBound(RegMachineArray)
CurrentArray(arrI2) = RegMachineArray(arrI2)
Next
Key = HKLM
End If
'Check Keys in Registry
For Each Path In CurrentArray
If oReg.EnumKey(Key, Path, arrSubKeys) = 0 Then
MsgBox(Path & " exist") 'for development
Else
MsgBox(Path & " don't exist") 'for development
End If
Next
Next
何らかの理由で
"SOFTWARE\Company\SWS\PlugIns\AlmBtPgLib.ALMPlugIn"
存在しないと表示されます。PlugInsまたはSWSが「存在する」か
どうかを確認しました。
それらのどれもしません。会社は存在します。
レジストリとパスを手動で確認しました。どちらも大丈夫そうです。
新しいキーを作成すると、それも見つかりません。
システムを再起動しましたが、変化はありません。
EnumKey の戻り値は 2 です。単純に 2 です。Web
を検索しましたが、解決策が見つかりませんでした。
ご協力いただきありがとうございます。明日は仕事を休むので、ユーティリティを確認することはできません。
アップデート:
スクリプトexternを実行すると、checkReg.vbsと言って動作します。
UFT が何らかの理由で適切な権限を持っていない可能性がありますか? 両方とも、.vbs スクリプトと UFT は同じユーザーの下で実行されます。
乾杯
サム