Erstmal: tolles Skript! Klappt alles einwandfrei!
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.
Erstmal: tolles Skript! Klappt alles einwandfrei!
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.
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:
If @OSArch = "X86" Then
$DigitalProductId = RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\", "DigitalProductId")
Else
$DigitalProductId = RegRead("HKLM64\SOFTWARE\Microsoft\Windows NT\CurrentVersion\", "DigitalProductId")
EndIf
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
$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
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
Gruß,
UEZ
Achso meinst Du das.
Darauf bin ich überhaupt nicht gekommen. Ich hatte das Programm nur geschrieben, weil ich anderen öfter mal bei ihren PC-Problemen helfe.
Aber ich werde das vielleicht noch ausblendbar machen. Danke für den Hinweis!
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?
Ja, eine Berichtsfunktion habe ich schon länger geplant. Momentan fehlt mir nur ein wenig die Zeit.
Hallo zusammen,
erst einmal: Ich bin begeistert
Doch einige Fragen und Anregungen:
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.
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
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
LG FKFK
Die Mailfunktion war noch in der 1.8er Version enthalten, da konnte man dann die Infos mailen.
Ich habe mir mit Hilfe des Forums ja noch eine Info-speicherung als Textdatei in die 1.8er eingefügt.
Falls das jemand brauchen kann, hänge ich es hier mit an.
autoit.de/wcf/attachment/14814/
Ps: Falls nicht erwünscht, dass ich das alte Script poste, nehme ich es gerne wieder raus!
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
vielen dank dir.
ich habe jetzt beid versionen. die eine zum markieren, und die andere weil es die aktuellste version ist.
Das man die Einträge in die Zwischenablage kopieren kann, wird demnächst kommen.
Mein derzeitiges Projekt ist jetzt fertig. Jetzt habe ich Zeit für andere Dinge.
Danke sowas braucht der Mensch !
Allerdings , es werden 2 Grafikkarten und 2 Monitore angezeig ? ich habe jeweils nur eins ;D
So, die neue Version ist fertig! (Post #1)
Man kann jetzt nur die markierten Einträge des aktuellen TAB, alle Einträge des aktuellen TAB oder komplett alle Einträge (Report) in die Zwischenablage kopieren.
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?
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.
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?
sauerei ! bei mir kackts auch ab (report 4/xx) !!! (win7 x64)
Hmm...könnt ihr mal in der Funktion "_CI_GetMaxTCPLen" die For-Schleife wie folgt ändern:
[autoit]
For $i = 1500 To 10 Step -10
Mir ist aufgefallen, dass das byteweise runterzählen zu "komischen" Ergebnissen führt.