مەن ئالدىنقى قېتىم ئاددىراق بولغان تىزىملاش نۇمۇرى ھاسىل قىلىش ئۇسۇلىنى تۇنۇشتۇرغان ئىدىم بەزى تورداشلار قاتتىق دىسكىنىڭ فىزىكىلىق تەرتىپ نۇمۇرىنى ئېلىش ئۇسۇلىنى ياخشىراق دىگەن تەكلىپ پىكىرنى قالدۇرۇپتىكەن . بۇگۇن مۇسابىقە مۇناسىۋىتى بىلەن بۇ توغرالىق يەنە ئورتاقلىشىپ بېقىشنى لايىق كۆردۇم.
بۇ قېتىم ئورتاقلىشىپ باقىدىغىنىمىز ، قاتتىق دىسكىنىڭ فىزىكىلىق نۇمۇرنى ئېلىش ئۇسۇلى ، بۇنىڭ ئۇچۇن بىز DiskID32.dll كونتىرول ئىشلىتەيلى !!! بۇ كونتىرول كود ھۆججىتى ئىچىدە بار .
ئۇنداقتا vb نى قوزغىتىپ بولغان بولساق Form دىن ئىككىنى قۇرايلى ! قۇرۇپ بولغاندىن كىيىن Form1 غا بۇ كودنى يېزىڭ !
- Private Declare Function DiskID32 Lib "DiskID32.DLL" (ByRef DISKMODEL As Byte, ByRef DiskID As Byte) As Long
- Dim arrSBox(0 To 255) As Integer
- Dim arrPW(0 To 255) As Integer
- Dim Bi As Integer, Bj As Integer
- Const serialCodeLen1 = 8
- Const serialCodeLen2 = 15
- Const keyCodeLen = 8
- Dim mresult
- Function SerialCode() As String
- Dim strSerialCode1 As String
- Dim strSerialCode2 As String
- Dim strSerialCodeY As String
- Dim strSerialCodeD As String
- Dim l As Long
- On Error GoTo err
- strSerialCodeY = IIf(Len(Text1.Text) > 0, Text1.Text, "1976122919770719")
- If Len(strSerialCodeY) > 14 Then strSerialCodeY = Right(strSerialCodeY, 14)
- If Not IsNumeric(strSerialCodeY) Then
- For l = 1 To Len(strSerialCodeY)
- strSerialCode1 = strSerialCode1 & CStr(IIf(IsNumeric(Mid(strSerialCodeY, l, 1)), Mid(strSerialCodeY, l, 1), 0))
- Next
- Else
- strSerialCode1 = strSerialCodeY
- End If
- strSerialCode1 = CStr(Int((CDbl(strSerialCode1) * 5 / 4 + 19761229)))
- For l = 1 To Len(strSerialCode1)
- strSerialCode2 = strSerialCode2 & Chr(CInt(Mid(strSerialCode1, l, 2)) / 10 + 65)
- Next
- For l = 1 To Len(strSerialCode2)
- If Len(strSerialCodeD) > 0 Then strSerialCodeD = strSerialCodeD & "-"
- If Len(Mid(strSerialCode2, l, 4)) < 4 Then
- strSerialCodeD = strSerialCodeD & Right(strSerialCode2, 4)
- Else
- strSerialCodeD = strSerialCodeD & Mid(strSerialCode2, l, 4)
- End If
- l = l + 4
- Next
- strSerialCodeD = strSerialCodeD & "-" & Right(strSerialCode1, 4)
- SerialCode = strSerialCodeD
- Exit Function
- err:
- MsgBox CStr(err.Number) & "-" & err.Description, vbCritical, "错误"
- SerialCode = ""
- End Function
- Private Sub Form_Load()
- Text1.Text = ""
- txbSerialCode.Text = ""
- Dim bDiskModel(20) As Byte
- Dim bDiskID(20) As Byte
- Dim strDiskModel As String
- Dim strDiskID As String
- DiskID32 bDiskModel(0), bDiskID(0)
- strDiskModel$ = bDiskModel()
- strDiskModel$ = StrConv(strDiskModel$, vbUnicode)
- Text1.Text = strDiskModel
- strDiskID$ = bDiskID()
- strDiskID = StrConv(strDiskID$, vbUnicode)
- End Sub
مەزمۇننى كۆچۈرۈۋېلىش ئەمدى كوماندا كونوپكىسىدىن ئىككى دانە سىزىڭ . Command1 غا بۇ كودنى يېزىڭ
- Private Sub Command1_Click()
- If Text1.Text = Text1 Then
- If Text2.Text = txbSerialCode.Text Then
- Form2.Show
- Unload Me
- Else
- a = MsgBox("kaqurug, paroligiz hata", vbYesNo + 16, "apsus")
- End If
- Else
- a = MsgBox("kaqurug, ismigiz hata", vbYesNo + 16, "apsus")
- End If
- End Sub
مەزمۇننى كۆچۈرۈۋېلىش Command2 غا بۇ كودنى يېزىڭ
- Private Sub Command2_Click()
- txbSerialCode.Text = SerialCode
- End Sub
مەزمۇننى كۆچۈرۈۋېلىش يۇقارقى كودقا قارتا ئازراق چۇشەنچەمنى يېزىپ قۇياي
- Private Declare Function DiskID32 Lib "DiskID32.DLL" (ByRef DISKMODEL As Byte, ByRef DiskID As Byte) As Long
مەزمۇننى كۆچۈرۈۋېلىش بۇنىڭ رولى بولسا DiskID32.DLL دىكى مەزمۇننى كورسىتىش ، ئىنىقلاش مەزمۇنىغا ئىگە!
- Dim arrSBox(0 To 255) As Integer
- Dim arrPW(0 To 255) As Integer
- Dim Bi As Integer, Bj As Integer
- Const serialCodeLen1 = 8
- Const serialCodeLen2 = 15
- Const keyCodeLen = 8
- Dim mresult
مەزمۇننى كۆچۈرۈۋېلىش ھەرىپ بەلگۇلەرنى ئېنىقلاش ،ئايلاندۇرۇش قىممىتىگە ئىگە.
- Function SerialCode() As String
- Dim strSerialCode1 As String
- Dim strSerialCode2 As String
- Dim strSerialCodeY As String
- Dim strSerialCodeD As String
- Dim l As Long
- On Error GoTo err
- strSerialCodeY = IIf(Len(Text1.Text) > 0, Text1.Text, "1976122919770719")
- If Len(strSerialCodeY) > 14 Then strSerialCodeY = Right(strSerialCodeY, 14)
- If Not IsNumeric(strSerialCodeY) Then
- For l = 1 To Len(strSerialCodeY)
- strSerialCode1 = strSerialCode1 & CStr(IIf(IsNumeric(Mid(strSerialCodeY, l, 1)), Mid(strSerialCodeY, l, 1), 0))
- Next
- Else
- strSerialCode1 = strSerialCodeY
- End If
- strSerialCode1 = CStr(Int((CDbl(strSerialCode1) * 5 / 4 + 19761229)))
- For l = 1 To Len(strSerialCode1)
- strSerialCode2 = strSerialCode2 & Chr(CInt(Mid(strSerialCode1, l, 2)) / 10 + 65)
- Next
- For l = 1 To Len(strSerialCode2)
- If Len(strSerialCodeD) > 0 Then strSerialCodeD = strSerialCodeD & "-"
- If Len(Mid(strSerialCode2, l, 4)) < 4 Then
- strSerialCodeD = strSerialCodeD & Right(strSerialCode2, 4)
- Else
- strSerialCodeD = strSerialCodeD & Mid(strSerialCode2, l, 4)
- End If
- l = l + 4
- Next
- strSerialCodeD = strSerialCodeD & "-" & Right(strSerialCode1, 4)
- SerialCode = strSerialCodeD
- Exit Function
- err:
- MsgBox CStr(err.Number) & "-" & err.Description, vbCritical, "错误"
- SerialCode = ""
- End Function
مەزمۇننى كۆچۈرۈۋېلىش بۇمۇ ئېنىقلاش ، ئىزاھلاش ، ئايلاندۇرۇش قىممەتلىرىنى ئوينايدۇ . بۇنىڭدىكى بەزى رەقەملەرنى ئوزگەرتىپ سىناپ باقسىڭىز بۇلىدۇ
- Text1.Text = ""
- txbSerialCode.Text = ""
- Dim bDiskModel(20) As Byte
- Dim bDiskID(20) As Byte
- Dim strDiskModel As String
- Dim strDiskID As String
- DiskID32 bDiskModel(0), bDiskID(0)
- strDiskModel$ = bDiskModel()
- strDiskModel$ = StrConv(strDiskModel$, vbUnicode)
- Text1.Text = strDiskModel
- strDiskID$ = bDiskID()
- strDiskID = StrConv(strDiskID$, vbUnicode)
مەزمۇننى كۆچۈرۈۋېلىش بۇمۇ يۇقاردىكى مەزمۇنلار ئېنىقلاپ بەرگەن مەزمۇنلارنى ئېنىقلاش ،كوزنەكتە كورسىتىش ،ئايلاندۇرۇش قىممىتىگە ئىگە
- Private Sub Command1_Click()
- If Text1.Text = Text1 Then
- If Text2.Text = txbSerialCode.Text Then
- Form2.Show
- Unload Me
- Else
- a = MsgBox("kaqurug, paroligiz hata", vbYesNo + 16, "apsus")
- End If
- Else
- a = MsgBox("kaqurug, ismigiz hata", vbYesNo + 16, "apsus")
- End If
- End Sub
مەزمۇننى كۆچۈرۈۋېلىش بۇ شەرت ، ئىزاھ دىگەندەك مەزمۇندا
- txbSerialCode.Text = SerialCode
مەزمۇننى كۆچۈرۈۋېلىش بۇ بولسا قىممەت، چىقىرىش ، كورسىتىش مەناسىدا
ئۇستازلارنىڭ ئالدىدا بەزى سوزلىرىم خاتا كەتكەن يەرلىرى بولسا ئەپۇ قىلىشنى ئۇمۇت قىلىمەن
|