Hab aber kein x64 System...
Naja da es anscheinend auch auf anderen Windows-Versionen läuft hab ich die Funktion nochmal umbenannt und korrigiert. Jetzt läuft es (bei mir) in beiden Fällen.
Spoiler anzeigen
Func _GetWinProductKey()
Local $bKey[15]
Local $sKey[29]
Local $Digits[24]
Local $Value = 0
Local $hi = 0
local $n = 0
Local $i = 0
Local $Result
$binaryDPID = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","DigitalProductID")
$Test = @extended
If Not @Compiled Then
If $Test = 3 Then $binaryDPID = Hex($binaryDPID)
EndIf
$Digits = StringSplit("BCDFGHJKMPQRTVWXY2346789","")
$binaryDPID = stringmid($binaryDPID,105,30)
For $i = 1 to 29 step 2
$bKey[int($i / 2)] = dec(stringmid($binaryDPID,$i,2))
next
For $i = 28 To 0 Step -1
If Mod(($i + 1), 6) = 0 Then
$sKey[$i] = "-"
Else
$hi = 0
For $n = 14 To 0 Step -1
$Value = Bitor(bitshift($hi ,-
, $bKey[$n])
$bKey[$n] = int($Value / 24)
$hi = mod($Value , 24)
Next
$sKey[$i] = $Digits[$hi +1]
EndIf
Next
For $i = 0 To 28
$Result = $Result & $sKey[$i]
Next
Return $Result
EndFunc
Falls noch jemandem was zu dem @extended einfällt darf gern gepostet werden. Auch ein Test ob es unter Vista funktioniert wäre nett, ansonsten setz ich das Topic mal als gelöst.
Danke an alle für die Hilfe