1.und wie lese ich das dann aus ?
2.wenn ich das ohne hide mache zeigt der mir was mit 1.7.0..... an obwohl ich java7 habe
1.7.0 = java7 O.o
MfG Solaris
Finde ich aber auch bissln "blöd" von den Java Entwicklern 7 <> 1.7.0
Ich persönlich würde es lieber über die Registry machen.
Wenn du es mit der Process-Klasse machst, kannst du mit RedirectStandardOutput und Streams arbeiten. Einfach mal nach googlen, gibt 'ne Menge Beispiele. ;)
Dim bytDPID() As Byte = RegKey.GetValue("DigitalProductID")
Dim bytKey(14) As Byte
Array.Copy(bytDPID, 52, bytKey, 0, 15)
Dim strChar As String = "BCDFGHJKMPQRTVWXY2346789"
Dim strKey As String = ""
For j As Integer = 0 To 24
Dim nCur As Short = 0
For i As Integer = 14 To 0 Step -1
nCur = CShort(nCur * 256 Xor bytKey(i))
bytKey(i) = CByte(Int(nCur / 24))
nCur = CShort(nCur Mod 24)
Next
strKey = strChar.Substring(nCur, 1) & strKey
Next
For i As Integer = 4 To 1 Step -1
strKey = strKey.Insert(i * 5, "-")
Next
Return strKey
Falls du das ganze ohne eigene Funktion haben willst, kannst du das return loeschen und einfach deinem Label zuweisen:
CODE
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim RegKey As RegistryKey = Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows NT\CurrentVersion")
Registry.LocalMachine.OpenSubKey("Software\Microsoft\Windows NT\CurrentVersion", False)
Dim bytDPID() As Byte = RegKey.GetValue("DigitalProductID")
Dim bytKey(14) As Byte
Array.Copy(bytDPID, 52, bytKey, 0, 15)
Dim strChar As String = "BCDFGHJKMPQRTVWXY2346789"
Dim strKey As String = ""
For j As Integer = 0 To 24
Dim nCur As Short = 0
For i As Integer = 14 To 0 Step -1
nCur = CShort(nCur * 256 Xor bytKey(i))
bytKey(i) = CByte(Int(nCur / 24))
nCur = CShort(nCur Mod 24)
Next
strKey = strChar.Substring(nCur, 1) & strKey
Next
For i As Integer = 4 To 1 Step -1
strKey = strKey.Insert(i * 5, "-")
Next
Label1.Text = strKey
End Sub
Vorteil beim ersten ist, du kannst die Funktion so oft aufrufen wie du willst, ohne staendig den selben Code neu zu schreiben.
Regi ist auch so eine Sache für sich..
Kannst schnell was kaputt machen, wenn man nicht 100% damit umgehen kann^^
Wenn man es so macht, wie man es machen soll - nämlich nur Leserechte anfordern - sehe ich dort kein Problem.
Es über die Registry auszulesen ist in meinen Augen schöner, als im Hintergrund eine cmd zu starten und auf die Ausgabe zu warten. Außerdem weißt du nie, was zurück kommt - die Ausgabe variiert vielleicht von PC zu PC oder von Version zu Version. Um alles Fehlerfrei abzudecken müsstest du unnötigen Aufwand betreiben.
Deshalb finde ich Registry besser.