| |
VB.NET - Ein- und UmsteigerWindows Key auslesen | | | Autor: Glubschi43 | Datum: 13.03.12 17:04 |
| Ich habe ein Problem. Ich wollte mit einem code den ich im Internet gefunden habe den Windows Key auslesen aber es hat nicht funktioniert
Public Function GetProductKey(ByVal KeyPath As String, ByVal ValueName As _
String) As String
Dim HexBuf As Object = My.Computer.Registry.GetValue(KeyPath, _
ValueName, 0)
If HexBuf Is Nothing Then Return "N/A"
Dim tmp As String = ""
For l As Integer = LBound(HexBuf) To UBound(HexBuf)
tmp = tmp & " " & Hex(HexBuf(l))
Next
Dim StartOffset As Integer = 52
Dim EndOffset As Integer = 67
Dim Digits(24) As String
Digits(0) = "B" : Digits(1) = "C" : Digits(2) = "D" : Digits(3) = "F"
Digits(4) = "G" : Digits(5) = "H" : Digits(6) = "J" : Digits(7) = "K"
Digits(8) = "M" : Digits(9) = "P" : Digits(10) = "Q" : Digits(11) = "R"
Digits(12) = "T" : Digits(13) = "V" : Digits(14) = "W" : Digits(15) = _
"X"
Digits(16) = "Y" : Digits(17) = "2" : Digits(18) = "3" : Digits(19) = _
"4"
Digits(20) = "6" : Digits(21) = "7" : Digits(22) = "8" : Digits(23) = _
"9"
Dim dLen As Integer = 29
Dim sLen As Integer = 15
Dim HexDigitalPID(15) As String
Dim Des(30) As String
Dim tmp2 As String = ""
For i = StartOffset To EndOffset
HexDigitalPID(i - StartOffset) = HexBuf(i)
tmp2 = tmp2 & " " & Hex(HexDigitalPID(i - StartOffset))
Next
Dim KEYSTRING As String = ""
For i As Integer = dLen - 1 To 0 Step -1
If ((i + 1) Mod 6) = 0 Then
Des(i) = "-"
KEYSTRING = KEYSTRING & "-"
Else
Dim HN As Integer = 0
For N As Integer = (sLen - 1) To 0 Step -1
Dim Value As Integer = ((HN * 2 ^ 8) Or HexDigitalPID(N))
HexDigitalPID(N) = Value \ 24
HN = (Value Mod 24)
Next
Des(i) = Digits(HN)
KEYSTRING = KEYSTRING & Digits(HN)
End If
Next
Return StrReverse(KEYSTRING)
End Function Kann mir jemand vllt sagen warum das nicht funzt ich arbeite mit visual basic 2010 express und habe windows 7 home premium | |
Re: Windows Key auslesen | | | Autor: Rippler | Datum: 13.03.12 20:20 |
| dieser Code wird wahrscheinlich so funktionieren
wie dargestellt. Da ich kein 32bit Windows habe
kann ich ihn nicht überprüfen.
unter 64bit Windows musst du das vorher abfragen
und gegebenenfalls berücksichtigen. | |
Re: Windows Key auslesen | | | Autor: Glubschi43 | Datum: 14.03.12 15:38 |
| Hab ich schon gesagt mit visual basic 2010 express edition | |
Re: Windows Key auslesen | | | Autor: Rippler | Datum: 14.03.12 16:03 |
| code für 32bit und 64bit
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
Handles Button1.Click
TextBox1.Text = WindowsCDKey()
End Sub
Private Function WindowsCDKey() As String
Dim BaseKey As RegistryKey
Dim SubKey As RegistryKey
If Environment.Is64BitOperatingSystem = True Then
BaseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, _
RegistryView.Registry64)
SubKey = BaseKey.OpenSubKey("SOFTWARE\Microsoft\Windows" & _
"NT\CurrentVersion", False)
Else
SubKey = Registry.LocalMachine.OpenSubKey( _
"SOFTWARE\Microsoft\Windows NT\CurrentVersion", False)
End If
Dim rpk As Byte() = DirectCast(SubKey.GetValue("DigitalProductId", New _
Byte(-1) {}), Byte())
Dim strKey As String = ""
Const iRPKOffset As Integer = 52
Const strPossibleChars As String = "BCDFGHJKMPQRTVWXY2346789"
Dim i As Integer = 28
Do
Dim lAccu As Long = 0
Dim j As Integer = 14
Do
lAccu *= 256
lAccu += Convert.ToInt64(rpk(iRPKOffset + j))
rpk(iRPKOffset + j) = Convert.ToByte(Convert.ToInt64(Math.Floor( _
CSng(lAccu) / 24.0F)) And Convert.ToInt64(255))
lAccu = lAccu Mod 24
j -= 1
Loop While j >= 0
i -= 1
strKey = strPossibleChars(CInt(lAccu)).ToString() & strKey
If (0 = ((29 - i) Mod 6)) AndAlso (-1 <> i) Then
i -= 1
strKey = "-" & strKey
End If
Loop While i >= 0
Return strKey
End Function | |
Re: Windows Key auslesen | | | Autor: Glubschi43 | Datum: 14.03.12 16:10 |
| Funktioniert nicht. Bei der Zeile Dim rpk As Byte() = DirectCast(SubKey.GetValue("DigitalProductId", New _
Byte(-1) {}), Byte()) zeigt er folgende Fehlermeldung an: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. | |
Re: Windows Key auslesen | | | Autor: Rippler | Datum: 14.03.12 16:20 |
| über public class form1
Imports Microsoft.Win32 | |
Re: Windows Key auslesen | | | Autor: Glubschi43 | Datum: 14.03.12 16:22 |
| importiert habe ich ja microsoft.win32 aber der zeigt den fehler an als ich auf den button geklickt hab | |
Re: Windows Key auslesen | | | Autor: Rippler | Datum: 14.03.12 17:14 |
| ersetze
SubKey = BaseKey.OpenSubKey("SOFTWARE\Microsoft\Windows" & _
"NT\CurrentVersion", False) durch
SubKey = BaseKey.OpenSubKey("SOFTWARE\Microsoft\Windows" & _
" NT\CurrentVersion", False) der automatische zeilenumbruch hat ein freizeichen unterschlgen | |
Re: Windows Key auslesen | | | Autor: Glubschi43 | Datum: 14.03.12 19:59 |
| Vielen dank es hat endlich funktioniert Danke Danke
Glubschi43 | |
Re: Windows Key auslesen | | | Autor: Maas | Datum: 14.03.12 20:20 |
| Die Visual Studio Version hat erstmal nichts mit der .NET-Version zu tun. Bei 2010 kannst du 2.0,3.0,3.5 und 4.0 einstellen.
Maas | |
Re: Windows Key auslesen | | | Autor: Glubschi43 | Datum: 15.03.12 20:37 |
| achso naja ich verwende .NET 4.0 Client Profile
und danke nochmal wegen dem code weil der funktioniert
Glubschi43 | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats TOP! Unser Nr. 1
Neu! sevDataGrid 3.0
Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|