Vbscript 什么是&;HF7在vbs中的平均值?
我在这个网站上搜索Google已经有一段时间了,但我不知道&HF7是什么意思?有人能解释一下吗?对不起,如果这是一个愚蠢的问题。我对这东西很陌生 这是我正在学习的代码Vbscript 什么是&;HF7在vbs中的平均值?,vbscript,Vbscript,我在这个网站上搜索Google已经有一段时间了,但我不知道&HF7是什么意思?有人能解释一下吗?对不起,如果这是一个愚蠢的问题。我对这东西很陌生 这是我正在学习的代码 Set WshShell = CreateObject("WScript.Shell") Key = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" DigitalID = WshShell.RegRead(key & "DigitalProductId") Pr
Set WshShell = CreateObject("WScript.Shell")
Key = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
DigitalID = WshShell.RegRead(key & "DigitalProductId")
ProductName = "Product Name: " & WshShell.RegRead(Key & "ProductName") & vbNewLine
ProductID = "Product ID: " & WshShell.RegRead(Key & "ProductID") & vbNewLine
ProductKey = "Installed Key: " & ConvertToKey(DigitalID)
ProductID = ProductName & ProductID & ProductKey
If vbYes = MsgBox(ProductId & vblf & vblf & "Save to a file?", vbYesNo + vbQuestion, "Windows Key Information") then
Save ProductID
End if
Function ConvertToKey(Key)
Const KeyOffset = 52
isWin8 = (Key(66) \ 6) And 1
Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
i = 24
Chars = "BCDFGHJKMPQRTVWXY2346789"
Do
Cur = 0
X = 14
Do
Cur = Cur * 256
Cur = Key(X + KeyOffset) + Cur
Key(X + KeyOffset) = (Cur \ 24)
Cur = Cur Mod 24
X = X -1
Loop While X >= 0
i = i -1
KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput
Last = Cur
Loop While i >= 0
If (isWin8 = 1) Then
keypart1 = Mid(KeyOutput, 2, Last)
insert = "N"
KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
If Last = 0 Then KeyOutput = insert & KeyOutput
End If
a = Mid(KeyOutput, 1, 5)
b = Mid(KeyOutput, 6, 5)
c = Mid(KeyOutput, 11, 5)
d = Mid(KeyOutput, 16, 5)
e = Mid(KeyOutput, 21, 5)
ConvertToKey = a & "-" & b & "-" & c & "-" & d & "-" & e
End Function
Function Save(Data)
Const ForWRITING = 2
Const asASCII = 0
Dim fso, f, fName, ts
fName = "Windows Key.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile fName
Set f = fso.GetFile(fName)
Set f = f.OpenAsTextStream(ForWRITING, asASCII)
f.Writeline Data
f.Close
End Function
这是一个公共常数:
通常用于检测正在按住的修改器键(ctrl、alt等)
具体的一个是Public Const VK_CRSEL,我假设它是Ctrl-select。它是编号
247
在VBScript中,
&H
前缀表示十六进制数,类似于C/C++中的0x
前缀。该数字为F7
,相当于十进制值247
&HF7
在此处用作掩码。将数组键位置66中的字节与字节&HF7进行比较 以二进制形式编写&HF7变为11110111。如果您使用11110111“And”键(66)的值,那么您将得到一个新字节,它由键(66)中的所有位组成,除了右边第四位的位
例如,如果键(66)是10101010,那么10101010和11110111将是10100010。我认为这个答案被接受得太快了&HF7是这段代码在我看来像是一个。我同意&HF7[hex](dec 247,bin 11110111)的用法,在这种情况下,是位操作的掩码(位掩码)。这不仅是正确答案,而且这是最相关的例子。我认为这应该被称为“最佳答案”。