مەن ئالدىنقى قېتىم ئاددىراق بولغان تىزىملاش نۇمۇرى ھاسىل قىلىش ئۇسۇلىنى تۇنۇشتۇرغان ئىدىم بەزى تورداشلار قاتتىق دىسكىنىڭ فىزىكىلىق تەرتىپ نۇمۇرىنى ئېلىش ئۇسۇلىنى ياخشىراق دىگەن تەكلىپ پىكىرنى قالدۇرۇپتىكەن . بۇگۇن مۇسابىقە مۇناسىۋىتى بىلەن بۇ توغرالىق يەنە ئورتاقلىشىپ بېقىشنى لايىق كۆردۇم.  
بۇ قېتىم ئورتاقلىشىپ باقىدىغىنىمىز ، قاتتىق دىسكىنىڭ فىزىكىلىق نۇمۇرنى ئېلىش ئۇسۇلى ، بۇنىڭ ئۇچۇن بىز 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
 
  مەزمۇننى كۆچۈرۈۋېلىش بۇ بولسا قىممەت، چىقىرىش ، كورسىتىش مەناسىدا  
ئۇستازلارنىڭ ئالدىدا بەزى سوزلىرىم خاتا كەتكەن يەرلىرى بولسا ئەپۇ قىلىشنى ئۇمۇت قىلىمەن 
 
  |