Hilfe bei Windowsproductkey

  • VBScript

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Th3RaZe.

    Hilfe bei Windowsproductkey

    Guten Tag Community,

    Ich hab eine Frage bezüglich des Windows Produktschlüssels, ich hab gestern was reingestellt und hab es Umgesetzt, nunja jetzt sitze ich vor einen Problem.

    VB.NET-Quellcode

    1. isWin8 = (DigitalID(66) \ 6) & 1


    Dies ist der Code der mir gestern Sorgen gemacht hatte in diesem Post: Brauche Hilfe beim Übersetzen eines VBScript in die Sprache VB


    Es ist eine Abfrage ob das System Windows 8 ist.
    Die "DigitalID" ist 164 lang und bei Byte 66 ist eine Value 0 also demsentsprechend ist 0:6=0 plus 1 = 1 also ist weiter unten im Code dann iswin8 = 1 dann ist win8 drauf, aber das Problem ist das Win7 hier drauf ist also dürfte nicht 1 raus kommen , und das ist die Frage , denn ich verstehe das nicht , Pfad alles richitg.

    mfg Alex

    *Scheint wohl um VBS zu gehen => Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Versuchs damit 8-)


    VB.NET-Quellcode

    1. Option Explicit
    2. Dim objshell,path,DigitalID, Result
    3. Set objshell = CreateObject("WScript.Shell")
    4. Path = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
    5. DigitalID = objshell.RegRead(Path & "DigitalProductId")
    6. Dim ProductName,ProductID,ProductKey,ProductData
    7. ProductName = "Product Name: " & objshell.RegRead(Path & "ProductName")
    8. ProductID = "Product ID: " & objshell.RegRead(Path & "ProductID")
    9. ProductKey = "Product Key: " & ConvertToKey(DigitalID)
    10. ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey
    11. WScript.echo ProductData
    12. Function ConvertToKey(Key)
    13. Const KeyOffset = 52
    14. Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert
    15. 'Check if OS is Windows 8
    16. isWin8 = (Key(66) \ 6) And 1
    17. Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
    18. i = 24
    19. Maps = "BCDFGHJKMPQRTVWXY2346789"
    20. Do
    21. Current= 0
    22. j = 14
    23. Do
    24. Current = Current* 256
    25. Current = Key(j + KeyOffset) + Current
    26. Key(j + KeyOffset) = (Current \ 24)
    27. Current=Current Mod 24
    28. j = j -1
    29. Loop While j >= 0
    30. i = i -1
    31. KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput
    32. Last = Current
    33. Loop While i >= 0
    34. keypart1 = Mid(KeyOutput, 2, Last)
    35. insert = "N"
    36. KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
    37. If Last = 0 Then KeyOutput = insert & KeyOutput
    38. ConvertToKey = Mid(KeyOutput, 1, 5) & "-" & Mid(KeyOutput, 6, 5) & _
    39. "-" & Mid(KeyOutput, 11, 5) & "-" & Mid(KeyOutput, 16, 5) & "-" & _
    40. Mid(KeyOutput, 21, 5)
    41. End Function
    :D Ein Programm sollte nicht nur Hand und Fuß, sondern auch Herz und Hirn haben. (Michael Anton) :D

    MFG Jörg ;)

    Muss jeder vermeintliche Programmierer ne Signatur haben ??
    Also zum Einen ist

    0\6 AND 1 nicht das Gleiche wie 0\6 + 1.
    0\6 AND 1 ist auch 0.

    0 AND iwas ist immer 0.

    Bei mir gibt es im Übrigen eine DigitalProductId und eine DigitalProductId4 bei Windows 7 steht bei (66) bei der ersten 0 bei der Id4 steht was drin.

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    @Jörg
    kommt dies raus:
    ---------------------------
    Windows Script Host
    ---------------------------
    Product Name: Windows 7 Enterprise

    Product ID: 45041-006-2695481-86304

    Product Key: NBBBB-BBBBB-BBBBB-BBBBB-BBBBB
    ---------------------------
    OK
    ---------------------------

    @Mono

    Ja aber warum ist im Debugger dann als wert eine "1" vorhanden wenn das doch auch "0" ist? , weil wenn es 0 wäre dann würde er auch nicht das system als Win8 betiteln.