Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Hallo
Ich hab nach nem Codeschnippsel gesucht um die Seriennummer der Festplatte zu ermitteln. Leider funktionierte der Code im CodeArchiv nur unter Windows NT. Hier ne möglichkeit um es auch unter Windows98 zu ermitteln:
[Edt.]
Habs nochmal in ner Funktion gekapselt
[Edt2:]
Die Seriennummer wird nun in Hexform zurück gegeben. Der zurückgegebener Wert stimmt mit dem Wert in AIDA überein. Daraus schließe ich das der Code nun funktionieren sollte.
Zuletzt geändert von MVXA am 24.11.2004 17:22, insgesamt 1-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
lol
Ich bekomm bei der ersten ne 10 stellige nummer 10 stellige Nummer und bei der 2. auch ne stellige aber ne andere mit einem Minus davor. Könnte eine Seriennummer nicht außerdem Buchstaben enthalten?
Wo kann ich ma die seriennummer noch anzeigen lassen?
Mir scheint der Rückgabewert des Codes von Little-Furz ist verkehrt
Unter XP kommt auf jeden Fall ein ganz anderes Ergebnis wie mit Ring seiner Routine. Werde das jetzt gleich nochmal unter 98 Testen
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Eigentlich beginnt die SerienNr. mit Buchstaben und endet mit Zahlen.
Der Code von LittleFurz gibt nur Zahlen zurück, unter XP negative, und für verschieden Partionen derselben Platte unterschiedliche. Unter Win98 kann ich nur mit einer Platte testen. Der Wert ist Positiv, enthält aber nur Ziffern.
Ich würde sagen der Code müßte nochmal kontrolliert werden
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Das Problem ist halt, das diese API (laut ner HP) eine dword variable als tmpSerial dort erwartet(unter win98 und winXP funktioniert das etwas utnerschiedlich ). Unter win98 funktioniert das mit Float GARNICHT aber dafür unter winXP "etwas".
Die Routine von Rings hat ein kleines Problem. Sie funktioniert nur unter NT Systemen
Ich nehme mal an, das tmpSerial n Pointer zu einen String im Memory ist. Kann ja mal wer testen, bin grad an nem PC ohne PB
LittleFurz hat geschrieben:Die Routine von Rings hat ein kleines Problem. Sie funktioniert nur unter NT Systemen
ich seh das als Feature an :
Ausserdem versucht ihr hier Äpfel und Birnen aus der Hdisk zu bekommen.
Meine Routine frägt das Laufwerk (die Firmware) ab, ihr lest jedoch nur die Nummer aus die Windows in der Registry einträgt (Und die verändert werden kann)
Rings hat geschrieben:ziert sich nich beim zitieren
Rings hat geschrieben:ich seh das als Feature an :
Ich sehe das mehr als ein Problem an um ein Programm unter mehreren Systemen lauffähig zu machen. Außerdem hab ich schon gehant, dass das was die beiden Codes zurück geben schon richtig ist.AIDA zeigt die Seriennummer einmal in Hex und einmal in String form an. Darauf schließe ich einfach mal das es die Seriennummer in Hex form und Text form gibt
Wenn sich Deine Routine nicht an Win9x anpassen läßt, ist sie auch nicht besonders flexibel. Wer bereits jetzt Win9x außer Acht läßt, verliert dadurch viele Kunden. Sogar MS bietet inzwischen wieder Updates für Win9x an. Die haben Ausnahmsweise mal einen Fehler korrigiert. Ich selber verwende Win9x allerdings nur noch zu Testzwecken
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.