• Hi,

    hier ein miniscript, was die win-id und den win-key ausliest.

    [autoit]

    ;
    ; WinGetKey
    ;
    ; © sc4ry

    #include <guiconstants.au3>
    #include <string.au3>

    [/autoit][autoit][/autoit][autoit]

    Opt("TrayMenuMode",1)
    TraySetToolTip("sc4ry´s " & @ScriptName & @CRLF & @UserName & " \\ " & @ComputerName & @CRLF & @OSVersion & " " & @OSServicePack & " \\ " & @OSBuild & @CRLF & @IPAddress1)

    [/autoit][autoit][/autoit][autoit]

    $flag = 0
    Global $menu, $copyid, $copykey

    [/autoit][autoit][/autoit][autoit]

    $ID = RegRead("HKLM\Software\Microsoft\Windows NT\CurrentVersion", "ProductId")
    $Bin = RegRead("HKLM\Software\Microsoft\Windows NT\CurrentVersion", "DigitalProductId")

    [/autoit][autoit][/autoit][autoit]

    If $flag = 0 Then GUICreate("WinGetKey", 300, 120, -1, -1, $WS_POPUP + $WS_DLGFRAME, $WS_EX_TOPMOST) ;normal(bild + buttons, kein menu)
    If $flag = 1 Then GUICreate("WinGetKey", 300, 120, -1, -1, $WS_POPUP + $WS_DLGFRAME, $WS_EX_TOPMOST) ;picless(ohne bild + menu, mit buttons)
    If $flag = 2 Then GUICreate("WinGetKey", 260, 140, -1, -1, $WS_POPUP + $WS_DLGFRAME, $WS_EX_TOPMOST) ;buttonless (mit bild + menu, ohne buttons)

    [/autoit][autoit][/autoit][autoit]

    If $flag <> 1 Then GUICtrlCreatePic("C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Wallpaper1.bmp", 0, 0, 370, 190)
    If $flag <> 1 Then GUICtrlSetState(-1, $GUI_DISABLE)
    If $flag = 2 Then $menu = GUICtrlCreateMenu("&copy...")
    If $flag = 2 Then $copyid = GUICtrlCreateMenuItem("&ID (ALT+C+I)", $menu)
    If $flag = 2 Then $copykey = GUICtrlCreateMenuItem("&Key (ALT+C+K)", $menu)
    If $flag <> 2 Then $copyid = GUICtrlCreateButton("copy &ID", 245, 30, 50, 20)
    If $flag <> 2 Then $copykey = GUICtrlCreateButton("copy &Key", 245, 80, 50, 20)
    GUICtrlCreateLabel("Product ID", 10, 10, 53, 15)
    GUICtrlCreateLabel("Product Key", 10, 60, 60, 15)
    $IID = GUICtrlCreateInput("", 10, 30, 230, 20, $ES_READONLY)
    GUICtrlSetData($IID, $ID)
    $IKey = GUICtrlCreateInput("", 10, 80, 230, 20, $ES_READONLY)
    GUICtrlSetData($IKey, DecodeProductKey($Bin))

    GUISetState(@sw_show)

    [/autoit][autoit][/autoit][autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = $gui_event_close
    Exit
    case $msg = $copyid
    ClipPut(guictrlread($IID))
    case $msg = $copykey
    ClipPut(guictrlread($IKey))
    EndSelect
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func DecodeProductKey($BinaryDPID)
    Local $bKey[15]
    Local $sKey[29]
    Local $Digits[24]
    Local $Value = 0
    Local $hi = 0
    Local $n = 0
    Local $i = 0
    Local $dlen = 29
    Local $slen = 15
    Local $Result

    $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 = $dlen - 1 To 0 Step - 1
    If Mod(($i + 1), 6) = 0 Then
    $sKey[$i] = "-"
    Else
    $hi = 0
    For $n = $slen - 1 To 0 Step - 1
    $Value = BitOR(BitShift($hi, -8), $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 ;==>DecodeProductKey

    [/autoit]
    • Offizieller Beitrag

    Hi,

    hier ist was ähnliches mit anderer GUI

    Spoiler anzeigen
    [autoit]

    ; ----------------------------------------------------------------------------
    ;
    ; AutoIt Version: 3.1.1 beta
    ; Author: Thorsten Meger
    ;
    ; Script Function:
    ; Windows XP Information displayed in a Gui
    ;
    ; ----------------------------------------------------------------------------
    #include <GUIConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $GUI = GUICreate("", 380, 315, -1, -1)
    GUISetFont(9, 700, -1, "MS Sans Serif")

    [/autoit] [autoit][/autoit] [autoit]

    $windowsInformation_L = GUICtrlCreateLabel(" Windows Information", 5, 3, 290, 25)
    $status_L = GUICtrlCreateLabel("Information read ...", 20, 280, 200, 20)
    $description_L = GUICtrlCreateLabel("Description", 20, 58, 100, 20)
    $windowsType_L = GUICtrlCreateLabel("WindowsType", 20, 83, 100, 20)
    $serialNumber_L = GUICtrlCreateLabel("SerialNumber", 20, 108, 100, 20)
    $ProductKey_L = GUICtrlCreateLabel("ProductKey", 20, 133, 100, 20)
    $InstallDate_L = GUICtrlCreateLabel("InstallDate", 20, 158, 100, 20)
    $LastBootUpTime_L = GUICtrlCreateLabel("LastBootUpTime", 20, 183, 100, 20)
    $RegisteredOwner_L = GUICtrlCreateLabel("RegisteredOwner", 20, 208, 100, 20)
    $officeKey_L = GUICtrlCreateLabel("OfficeKey", 20, 233, 100, 20)

    [/autoit] [autoit][/autoit] [autoit]

    $description_I = GUICtrlCreateInput("", 125, 55, 235, 20)
    $windowsType_I = GUICtrlCreateInput("", 125, 80, 235, 20)
    $serialNumber_I = GUICtrlCreateInput("", 125, 105, 235, 20)
    $ProductKey_I = GUICtrlCreateInput("", 125, 130, 235, 20)
    $InstallDate_I = GUICtrlCreateInput("", 125, 155, 235, 20)
    $LastBootUpTime_I = GUICtrlCreateInput("", 125, 180, 235, 20)
    $RegisteredOwner_I = GUICtrlCreateInput("", 125, 205, 235, 20)
    $officeKey_I = GUICtrlCreateInput("", 125, 230, 235, 20)

    [/autoit] [autoit][/autoit] [autoit]

    $informationPanel_G = GUICtrlCreateGroup("Information Panel", 10, 35, 360, 225)
    $status_G = GUICtrlCreateGroup("Status", 10, 265, 360, 40)

    [/autoit] [autoit][/autoit] [autoit]

    $font = "Comic Sans MS"
    GUICtrlSetColor($windowsInformation_L, 0xff0000)
    GUICtrlSetFont($windowsInformation_L, 16, 700, 4, $font)

    [/autoit] [autoit][/autoit] [autoit]

    $progressbar = GUICtrlCreateProgress(140, 278, 220, 20)

    [/autoit] [autoit][/autoit] [autoit]

    Global $product = ""
    Global $counter = 3
    Global $wait = 150

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    If $counter = 3 Then
    Sleep(1000)
    GUICtrlSetData($status_L, "Initialize ... " & $counter)
    progress()
    $counter -= 1
    ElseIf $counter = 2 Then
    GUICtrlSetData($status_L, "Initialize ... " & $counter)
    progress()
    $counter -= 1
    ElseIf $counter = 1 Then
    GUICtrlSetData($status_L, "Initialize ... " & $counter)
    progress()
    $counter -= 1
    ElseIf $counter = 0 Then
    GUICtrlSetData($status_L, "Ready ...")
    progress()
    $counter -= 1
    ElseIf $counter = -1 Then
    Dim $Bin = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "DigitalProductID")
    Dim $key4RegisteredOwner = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
    $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    $colSettings = $objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")

    [/autoit] [autoit][/autoit] [autoit]

    For $objOperatingSystem In $colSettings
    Next
    GUICtrlSetData($description_I, StringMid($objOperatingSystem.Description, 1))
    GUICtrlSetData($windowsType_I, '(' & @OSVersion & ') ' & StringMid($objOperatingSystem.Caption, 19))
    GUICtrlSetData($serialNumber_I, StringMid($objOperatingSystem.SerialNumber, 1))
    GUICtrlSetData($ProductKey_I, DecodeProductKey($Bin))
    GUICtrlSetData($InstallDate_I, WMIDateStringToDate($objOperatingSystem.InstallDate))
    GUICtrlSetData($LastBootUpTime_I, WMIDateStringToDate($objOperatingSystem.LastBootUpTime))
    GUICtrlSetData($RegisteredOwner_I, RegRead($key4RegisteredOwner, "RegisteredOwner"))
    GUICtrlSetData($officeKey_I, getOfficeKey())
    GUICtrlSetData($officeKey_L, "Office " & $product)
    $counter -= 1
    ElseIf $counter < -1 Then
    Select
    Case $msg = $GUI_EVENT_CLOSE
    GUICtrlSetState($progressbar, $GUI_HIDE)
    GUICtrlSetData($status_L, "CU Mega")
    Sleep(2000)
    ExitLoop
    EndSelect
    EndIf
    WEnd
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func DecodeProductKey($BinaryDPID)
    Local $bKey[15]
    Local $sKey[29]
    Local $Digits[24]
    Local $Value = 0
    Local $hi = 0
    Local $n = 0
    Local $i = 0
    Local $dlen = 29
    Local $slen = 15
    Local $Result

    [/autoit] [autoit][/autoit] [autoit]

    $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 = $dlen - 1 To 0 Step - 1
    If Mod(($i + 1), 6) = 0 Then
    $sKey[$i] = "-"
    Else
    $hi = 0
    For $n = $slen - 1 To 0 Step - 1
    $Value = BitOR(BitShift($hi, -8), $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 ;==>DecodeProductKey

    [/autoit] [autoit][/autoit] [autoit]

    Func WMIDateStringToDate($dtmDate)
    Return (StringMid($dtmDate, 7, 2) & "/" & _
    StringMid($dtmDate, 5, 2) & "/" & StringLeft($dtmDate, 4) _
    & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate, 13, 2))
    EndFunc ;==>WMIDateStringToDate

    [/autoit] [autoit][/autoit] [autoit]

    Func progress()
    If $counter = 3 Then
    For $i = 0 To 20 Step 1
    GUICtrlSetData($progressbar, $i)
    Sleep($wait / 20)
    Next
    ElseIf $counter = 2 Then
    For $i = 20 To 50 Step 1
    GUICtrlSetData($progressbar, $i)
    Sleep($wait / 30)
    Next
    ElseIf $counter = 1 Then
    For $i = 50 To 80 Step 1
    GUICtrlSetData($progressbar, $i)
    Sleep($wait / 30)
    Next
    ElseIf $counter = 0 Then
    For $i = 80 To 100 Step 1
    GUICtrlSetData($progressbar, $i)
    Sleep($wait / 20)
    Next
    GUICtrlSetState($progressbar, $GUI_SHOW)
    EndIf
    EndFunc ;==>progress

    [/autoit] [autoit][/autoit] [autoit]

    Func getOfficeKey()
    Local $List[1]
    Local $i = 1
    $var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Common\InstallRoot", "Path")
    If $var <> "" Then
    $product = "2003"
    Dim $officeKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Registration"
    Else
    $var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\10.0\Common\InstallRoot", "Path")
    If @error <> 0 Then
    GUICtrlSetData($status_L, "Info: Unable to find installationPath, maybe no Office installed!")
    Return "No Office XP or 2003 found"
    EndIf
    If $var <> "" Then
    $product = "XP"
    Dim $officeKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\10.0\Registration"
    EndIf
    EndIf
    Dim $var = RegEnumKey($officeKey, $i)
    If @error <> 0 Then
    GUICtrlSetData($status_L, "Info: Unable to find REG_BINARY 'DigitalProductID', maybe no Office installed!")
    Return "No Office XP or 2003 found"
    Else
    $List[$i - 1] = RegRead($officeKey & "\" & $var, "DigitalProductID")
    If $List[$i - 1] = "" Then
    GUICtrlSetData($status_L, "Info: Unable to find REG_BINARY 'DigitalProductID', maybe no Office installed!")
    Else
    $key = $List[$i - 1]
    Return DecodeProductKey($key)
    EndIf
    EndIf
    EndFunc ;==>getOfficeKey

    [/autoit]

    So long,

    Mega

  • ohhh spimmt =O
    trotzdem THX :D