• Erstmal: tolles Skript! 8) Klappt alles einwandfrei! :thumbup:

    Bis auf: unter "Windows" -> "Produktkey" steht bei mir BBBBB-BBBBB-BBBBB-BBBBB-BBBBB. Iat das so gewollt? Wenn ja würde ich das entfernen, weil es IMHO sogar gefährlich ist.

    • Offizieller Beitrag

    Skilkor: Der Wert bei der max. Datenbreite ist fehlerhaft. Das habe ich mittlerweile behoben (kommt mit der nächsten Version). Die anderen Daten kann ich nicht beeinflussen, da sie so von WMI zurückgeliefert werden.

    Script-Bär: Ich vermute mal, Du meinst, dass da der echte Produktkey steht? Ich verstehe allerdings nicht, warum das gefährlich sein soll?

  • Ja, ich hatte vermutet dass dort der echte Key steht.

    IMHO ist das gefährlich, da jetzt jemand mit bösen Absichten, dem du eine Auswertung deines Prog schickt sich so ein Windows lizensieren könnte. (klar kann man das verfälschen aber -> DAU). Kann natürlich auch so sein das ich vollkommen falsch denke, dann korrigiert mich bitte.

  • Probiert mal dies:

    Spoiler anzeigen
    [autoit]


    If @OSArch = "X86" Then
    $DigitalProductId = RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\", "DigitalProductId")
    Else
    $DigitalProductId = RegRead("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\", "DigitalProductId")
    EndIf

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

    MsgBox(0, "Decode Product Key", _DecodeProductKey($DigitalProductId))

    [/autoit] [autoit][/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", "")

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

    $BinaryDPID = StringMid($BinaryDPID, 107, 30)

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

    For $i = 1 To 29 Step 2
    $bKey[Int($i / 2)] = Dec(StringMid($BinaryDPID, $i, 2))
    Next

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

    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

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

    Next
    For $i = 0 To 28
    $Result = $Result & $sKey[$i]
    Next

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

    Return $Result
    EndFunc ;==>DecodeProductKey

    [/autoit]

    Gruß,
    UEZ

    Auch am Arsch geht ein Weg vorbei...

    ¯\_(ツ)_/¯

  • Hi Oscar,

    Zunächst möchte ich folgendes los werden:

    Klasse Script! Danke dafür!


    Nun zum Anliegen:
    Wäre es möglich, dass du in dem Script eine Export-Funktion beilegst?
    Eventuell sogar eine Möglichkeit, diese zu exportierende Datei automatisch zu erstellen?

  • Hallo zusammen,

    erst einmal: Ich bin begeistert :)
    Doch einige Fragen und Anregungen:

    sc4ry,

    drücke doch auf senden und dann kann man speichern...

    Was genau kann ihr gesendet und gespeichert werden?

    sc4ry: Ich sehe jetzt nicht so das Problem darin, dass jemand die Daten ändert. Meist bin ich es ja selbst, der das Programm startet. Oder ich lasse es von demjenigen starten (oft mit telefonischer Hilfe) und er soll mir den Bericht zuschicken. Sollte es jemand hier lieber als ReadOnly haben wollen, dann bin ich mir sicher, dass ihr diese kleine Änderung hinbekommt. :thumbup:

    Und es gibt schon wieder eine neue Version: 1.7 (siehe Post#1).

    Um welches ReadOnly-Feld geht es hier?

    ja das ist wirklich praktisch.

    Ein Vorschlag hätte ich. Vielleicht wäre es auch praktisch, wenn die mail statt über den vorhandenen Email-Client, direkt per SMTP schickt. Ich denke da an die User, die es nicht schaffen Ihren Email Client richtig zu konfigurieren :S

    Nur so ein Gedanke...
    Franz

    Wie können damit Mails verschickt werden? Diese Funktion konnte ich leider noch nicht finden...

    Zu den Anregungen: Es wäre toll, wenn man mit dem Programm die installierte Software, wie in der Systemsteuerung auflisten und auch den Produktkey von Office anzeigen könnte :)

    Trotzdem: Genial :D

    LG FKFK

  • hallo, habe den thread gerade durch zufall gefunden, und muß sagen ist echt spitze.

    aber eine kleine frage oder bitte habe ich dazu dennoch. kann man es nicht so machen das der text kopierbar ist? oft brauche ich daten auch für copy und paste.

    gruß FRank

  • schau mal direkt über deinem beispiel: "Computer-Info1.8a.au3" ... da kannst du speichern, ansonsten füge bei der version auf seite 1 doch einfach ein: _ArrayDisplay($aInfo) so z.B.:

    [autoit]

    EndSwitch
    If Not @error Then
    For $i = 1 To UBound($aInfo) - 1
    Switch $iFunctionNr
    Case 0, 4, 12, 14
    GUICtrlCreateListViewItem('', $ahContent[$iFunctionNr])
    Case Else
    GUICtrlCreateListViewItem($i & '.| ', $ahContent[$iFunctionNr])
    EndSwitch
    For $j = 0 To UBound($aInfo, 2) - 1
    GUICtrlCreateListViewItem($aInfo[0][$j] & '|' & $aInfo[$i][$j], $ahContent[$iFunctionNr])
    Next
    GUICtrlCreateListViewItem(' | ', $ahContent[$iFunctionNr])
    Next
    _ArrayDisplay($aInfo)
    Else

    [/autoit]
  • vielen dank dir.

    ich habe jetzt beid versionen. die eine zum markieren, und die andere weil es die aktuellste version ist. :D :D

  • Leider stürzt es regelmäßig ab, bzw. ändert den Status auf "Bitte Warten" bzw. Report erstellen (ab Register Netzwerk oder Report) und danach passiert nichts mehr...
    Ich habe WinXP 32Bit.

    Auf jeden Fall vielen Dank für das Programm :)
    Kann man damit eigentlich auch den Office-Key auslesen bzw. in welcher Registerkarte?

    //edit: Seltsamerweise wird auch nicht mehr das Programm-Icon im Bereich links von der Uhr angezeigt. Wurde in dieser Richtung etwas verändert?

    • Offizieller Beitrag

    Leider stürzt es regelmäßig ab, bzw. ändert den Status auf "Bitte Warten" bzw. Report erstellen (ab Register Netzwerk oder Report) und danach passiert nichts mehr...
    Ich habe WinXP 32Bit.

    Wenn da steht "Bitte warten..." sollte man auch etwas warten. :D
    Im Ernst: Ich hab's auch mit WinXP 32Bit getestet. Es funktioniert auch dort. Nur bei einigen TABs dauert das erstellen etwas länger (z.B. Netzwerk -> Ping).
    Richtig abstürzen dürfte das Skript eigentlich nicht. Vielleicht blockt auch Deine Firewall die Zugriffe des Programms auf's Internet.

    Kann man damit eigentlich auch den Office-Key auslesen bzw. in welcher Registerkarte?


    Nein, Office-Key kann man nicht auslesen.

    //edit: Seltsamerweise wird auch nicht mehr das Programm-Icon im Bereich links von der Uhr angezeigt. Wurde in dieser Richtung etwas verändert?


    Wozu ein Tray-Icon, wenn es sowieso kein Menü dazu gibt? ;)
    Siehe auch #NoTrayIcon im Skript.

  • Wozu ein Tray-Icon, wenn es sowieso kein Menü dazu gibt? ;)
    Siehe auch #NoTrayIcon im Skript.

    Nunja das Tray-Icon habe ich ganz gerne, um damit das Programm beenden zu können, wenn es sich nicht mehr über die normalen Programmwege beenden lässt. Dadurch muss ich den Prozess nicht im Task-Manager killen, was ja immer eine sehr unsaubere Methode ist :)

    Nach 30Min. macht es immer noch nichts. Ich untersuche gerade, wo es hängen bleibt...

    //edit: Die Funktion _CI_GetMaxTCPLen benötigt ca. 45 Min. fürs durchlaufen. Ich habe mir das anzeigen lassen und auf diesem PC führt er alle 1500 Schritte der Schleife aus und hört erst bei 1 auf. Im Gegensatz dazu hört es bei anderen PCs schon nach kurzer Zeit mit dieser Schleife auf.
    Was ist eigentlich der Zweck der Funktion?