تىزىملىتىش |كىرىش

ئىنتىل تورىدەرۋازا › تېما كۆرۈش

‹‹مۇسابىقە›› قاتتىق دىسكىنىڭ فىزىكىلىق نۇمۇرى .....

يوللىغۇچى: alsuyar| يوللانغان ۋاقتى: 2010-9-23 22:50| كۆرۈلۈشى: 129| ئىنكاس سانى: 6

مەن ئالدىنقى قېتىم ئاددىراق بولغان تىزىملاش نۇمۇرى ھاسىل قىلىش ئۇسۇلىنى تۇنۇشتۇرغان ئىدىم بەزى تورداشلار قاتتىق دىسكىنىڭ فىزىكىلىق تەرتىپ نۇمۇرىنى ئېلىش ئۇسۇلىنى ياخشىراق دىگەن تەكلىپ پىكىرنى قالدۇرۇپتىكەن . بۇگۇن مۇسابىقە مۇناسىۋىتى بىلەن بۇ توغرالىق يەنە ئورتاقلىشىپ بېقىشنى لايىق كۆردۇم.
بۇ قېتىم ئورتاقلىشىپ باقىدىغىنىمىز ، قاتتىق دىسكىنىڭ فىزىكىلىق نۇمۇرنى ئېلىش ئۇسۇلى ، بۇنىڭ ئۇچۇن بىز DiskID32.dll كونتىرول ئىشلىتەيلى !!!   بۇ كونتىرول كود ھۆججىتى ئىچىدە بار .
ئۇنداقتا vb  نى قوزغىتىپ بولغان بولساق Form دىن ئىككىنى قۇرايلى !  قۇرۇپ بولغاندىن كىيىن Form1 غا بۇ كودنى يېزىڭ !
  1. Private Declare Function DiskID32 Lib "DiskID32.DLL" (ByRef DISKMODEL As Byte, ByRef DiskID As Byte) As Long

  2. Dim arrSBox(0 To 255) As Integer
  3. Dim arrPW(0 To 255) As Integer
  4. Dim Bi As Integer, Bj As Integer
  5. Const serialCodeLen1 = 8
  6. Const serialCodeLen2 = 15
  7. Const keyCodeLen = 8
  8. Dim mresult



  9. Function SerialCode() As String
  10. Dim strSerialCode1 As String
  11. Dim strSerialCode2 As String
  12. Dim strSerialCodeY As String
  13. Dim strSerialCodeD As String
  14. Dim l As Long

  15. On Error GoTo err

  16. strSerialCodeY = IIf(Len(Text1.Text) > 0, Text1.Text, "1976122919770719")
  17. If Len(strSerialCodeY) > 14 Then strSerialCodeY = Right(strSerialCodeY, 14)
  18. If Not IsNumeric(strSerialCodeY) Then
  19. For l = 1 To Len(strSerialCodeY)
  20. strSerialCode1 = strSerialCode1 & CStr(IIf(IsNumeric(Mid(strSerialCodeY, l, 1)), Mid(strSerialCodeY, l, 1), 0))
  21. Next
  22. Else
  23. strSerialCode1 = strSerialCodeY
  24. End If
  25. strSerialCode1 = CStr(Int((CDbl(strSerialCode1) * 5 / 4 + 19761229)))
  26. For l = 1 To Len(strSerialCode1)
  27. strSerialCode2 = strSerialCode2 & Chr(CInt(Mid(strSerialCode1, l, 2)) / 10 + 65)
  28. Next
  29. For l = 1 To Len(strSerialCode2)
  30. If Len(strSerialCodeD) > 0 Then strSerialCodeD = strSerialCodeD & "-"
  31. If Len(Mid(strSerialCode2, l, 4)) < 4 Then
  32. strSerialCodeD = strSerialCodeD & Right(strSerialCode2, 4)
  33. Else
  34. strSerialCodeD = strSerialCodeD & Mid(strSerialCode2, l, 4)
  35. End If
  36. l = l + 4
  37. Next
  38. strSerialCodeD = strSerialCodeD & "-" & Right(strSerialCode1, 4)
  39. SerialCode = strSerialCodeD
  40. Exit Function
  41. err:
  42. MsgBox CStr(err.Number) & "-" & err.Description, vbCritical, "错误"
  43. SerialCode = ""
  44. End Function




  45. Private Sub Form_Load()
  46. Text1.Text = ""
  47. txbSerialCode.Text = ""

  48. Dim bDiskModel(20) As Byte
  49. Dim bDiskID(20) As Byte
  50. Dim strDiskModel As String
  51. Dim strDiskID As String

  52. DiskID32 bDiskModel(0), bDiskID(0)

  53. strDiskModel$ = bDiskModel()
  54. strDiskModel$ = StrConv(strDiskModel$, vbUnicode)
  55. Text1.Text = strDiskModel
  56. strDiskID$ = bDiskID()
  57. strDiskID = StrConv(strDiskID$, vbUnicode)

  58. End Sub
مەزمۇننى كۆچۈرۈۋېلىش
ئەمدى كوماندا كونوپكىسىدىن ئىككى دانە سىزىڭ . Command1 غا بۇ كودنى يېزىڭ
  1. Private Sub Command1_Click()
  2. If Text1.Text = Text1 Then
  3. If Text2.Text = txbSerialCode.Text Then
  4. Form2.Show
  5. Unload Me
  6. Else
  7. a = MsgBox("kaqurug, paroligiz hata", vbYesNo + 16, "apsus")
  8. End If
  9. Else
  10. a = MsgBox("kaqurug, ismigiz hata", vbYesNo + 16, "apsus")
  11. End If
  12. End Sub
مەزمۇننى كۆچۈرۈۋېلىش
Command2 غا بۇ كودنى يېزىڭ
  1. Private Sub Command2_Click()
  2. txbSerialCode.Text = SerialCode
  3. End Sub
مەزمۇننى كۆچۈرۈۋېلىش
يۇقارقى كودقا قارتا ئازراق چۇشەنچەمنى يېزىپ قۇياي
  1. Private Declare Function DiskID32 Lib "DiskID32.DLL" (ByRef DISKMODEL As Byte, ByRef DiskID As Byte) As Long
مەزمۇننى كۆچۈرۈۋېلىش
بۇنىڭ رولى بولسا DiskID32.DLL دىكى مەزمۇننى كورسىتىش ، ئىنىقلاش مەزمۇنىغا ئىگە!
  1. Dim arrSBox(0 To 255) As Integer
  2. Dim arrPW(0 To 255) As Integer
  3. Dim Bi As Integer, Bj As Integer
  4. Const serialCodeLen1 = 8
  5. Const serialCodeLen2 = 15
  6. Const keyCodeLen = 8
  7. Dim mresult
مەزمۇننى كۆچۈرۈۋېلىش
ھەرىپ بەلگۇلەرنى ئېنىقلاش ،ئايلاندۇرۇش قىممىتىگە ئىگە.

  1. Function SerialCode() As String
  2. Dim strSerialCode1 As String
  3. Dim strSerialCode2 As String
  4. Dim strSerialCodeY As String
  5. Dim strSerialCodeD As String
  6. Dim l As Long

  7. On Error GoTo err

  8. strSerialCodeY = IIf(Len(Text1.Text) > 0, Text1.Text, "1976122919770719")
  9. If Len(strSerialCodeY) > 14 Then strSerialCodeY = Right(strSerialCodeY, 14)
  10. If Not IsNumeric(strSerialCodeY) Then
  11. For l = 1 To Len(strSerialCodeY)
  12. strSerialCode1 = strSerialCode1 & CStr(IIf(IsNumeric(Mid(strSerialCodeY, l, 1)), Mid(strSerialCodeY, l, 1), 0))
  13. Next
  14. Else
  15. strSerialCode1 = strSerialCodeY
  16. End If
  17. strSerialCode1 = CStr(Int((CDbl(strSerialCode1) * 5 / 4 + 19761229)))
  18. For l = 1 To Len(strSerialCode1)
  19. strSerialCode2 = strSerialCode2 & Chr(CInt(Mid(strSerialCode1, l, 2)) / 10 + 65)
  20. Next
  21. For l = 1 To Len(strSerialCode2)
  22. If Len(strSerialCodeD) > 0 Then strSerialCodeD = strSerialCodeD & "-"
  23. If Len(Mid(strSerialCode2, l, 4)) < 4 Then
  24. strSerialCodeD = strSerialCodeD & Right(strSerialCode2, 4)
  25. Else
  26. strSerialCodeD = strSerialCodeD & Mid(strSerialCode2, l, 4)
  27. End If
  28. l = l + 4
  29. Next
  30. strSerialCodeD = strSerialCodeD & "-" & Right(strSerialCode1, 4)
  31. SerialCode = strSerialCodeD
  32. Exit Function
  33. err:
  34. MsgBox CStr(err.Number) & "-" & err.Description, vbCritical, "错误"
  35. SerialCode = ""
  36. End Function
مەزمۇننى كۆچۈرۈۋېلىش
بۇمۇ ئېنىقلاش ، ئىزاھلاش ، ئايلاندۇرۇش قىممەتلىرىنى ئوينايدۇ . بۇنىڭدىكى بەزى رەقەملەرنى ئوزگەرتىپ سىناپ باقسىڭىز بۇلىدۇ
  1. Text1.Text = ""
  2. txbSerialCode.Text = ""

  3. Dim bDiskModel(20) As Byte
  4. Dim bDiskID(20) As Byte
  5. Dim strDiskModel As String
  6. Dim strDiskID As String

  7. DiskID32 bDiskModel(0), bDiskID(0)

  8. strDiskModel$ = bDiskModel()
  9. strDiskModel$ = StrConv(strDiskModel$, vbUnicode)
  10. Text1.Text = strDiskModel
  11. strDiskID$ = bDiskID()
  12. strDiskID = StrConv(strDiskID$, vbUnicode)
مەزمۇننى كۆچۈرۈۋېلىش
بۇمۇ يۇقاردىكى مەزمۇنلار ئېنىقلاپ بەرگەن مەزمۇنلارنى ئېنىقلاش ،كوزنەكتە كورسىتىش ،ئايلاندۇرۇش قىممىتىگە ئىگە

  1. Private Sub Command1_Click()
  2. If Text1.Text = Text1 Then
  3. If Text2.Text = txbSerialCode.Text Then
  4. Form2.Show
  5. Unload Me
  6. Else
  7. a = MsgBox("kaqurug, paroligiz hata", vbYesNo + 16, "apsus")
  8. End If
  9. Else
  10. a = MsgBox("kaqurug, ismigiz hata", vbYesNo + 16, "apsus")
  11. End If
  12. End Sub
مەزمۇننى كۆچۈرۈۋېلىش
بۇ شەرت ، ئىزاھ  دىگەندەك مەزمۇندا  

  1. txbSerialCode.Text = SerialCode
مەزمۇننى كۆچۈرۈۋېلىش
بۇ بولسا قىممەت، چىقىرىش ، كورسىتىش مەناسىدا
ئۇستازلارنىڭ ئالدىدا بەزى سوزلىرىم خاتا كەتكەن يەرلىرى بولسا ئەپۇ قىلىشنى ئۇمۇت قىلىمەن

قوشۇمچە ھۆججەت: كىرسىڭىز ئاندىن قوشۇمچە ھۆججەت كۆرەلەيسىز. تىزىملاتقانمۇ؟تىزىملىتىش

يېڭى ئىنكاسلار

Intil 4  كۈن ئالدىدا
مۇسابىقە ئەسەرلىرىنى تەلەپ بويىچە چۈشەندۈرۈپ يوللاۋاتىسىز. تەشەككۈر.
VB بىلىملىرى مۇسابىقىسىغا قاتناشقان ئەسەرلەر    سەھىپە:ئۇقتۇرۇش,
wolkan0995 3  كۈن ئالدىدا
مەن سىزدىن بىر يەرنى سوراپ باقاي If Text1.Text = Text1 Then ماۋۇ جايدىكى Text1 دېگەن بۇنى مەن بۇيەردە ئۆزگەرگۈچى مىقتار مىكىن دەپ چۇشەندىم ، لېكىن سىزنىڭ پىروگىراممىڭىزدا Text1 دەپ ئۆزگەرگۈچى مىقتار ئۇچۇرمىدى ماڭا بۇ قانداق بولغىنى؟
alsuyar 3  كۈن ئالدىدا
ئىنكاس قايتۇرۇش wolkan0995 نىڭ تېمىسى


   
alsuyar 3  كۈن ئالدىدا
ئوزگەرگۇچى مىقدار قەريان دەرجىلىك ئوزگەرگۇچى مىقدار (Proceddure-level) ۋە بۇلەك دەرجىلىك ئۆزگەرگۇچى مىقدار دەپ (Module-level ) دەپ ئىككىگە بۇلىندۇ . جەريان دەرجىلىك ئۆزگەرگۇچى مىقدار پەقەت ئۇزنىڭ قايسى جەرياندا ئىشلىتىلدىغانلىقىنى ئىزاھلايدۇ. بۇلەك دەرجىلىك ئۆزگەرگۇچى مىقدار بۇلەكنىڭ ئۇزىگە تەۋە ئۆزلۇك ئوزگەرگۇچى مىقدار ۋە بۇلەك ئورتاق ئىشلىتىدىغان ئورتاق ئۆزگەرگۇچى مىقدار دەپ ئىككىگە بۇلىندۇ. مەن بۇ توغرالىق كەچلەردە ۋاقتىم چىقىپ قالسا ئايرىم بىر دەرسلىك يوللاپ قۇياي !!!  
wolkan0995  سىز ئېيتقان If Text1.Text = Text1 Then بۇنى مەن مۇنداق چۇشەندۇرەي.  
if   then   بۇ شەرت جۇملىسى  
مەنبە = نىشان
Text1.Text = Text1
مىنىڭ چۇشەدۇرۇشمدىن رازى بولمىسىڭىز چۇشەنمىگەن يەرنى ئىنكاس يېزىڭ !!!   ئۆزگەرگۇچى مىقدار توغرىسىدا مۇسابىقە ئاياغلاشقۇچە ئۇزەمنىڭ بىلگىنىمنى چۇشەنچە قىلىپ يوللاپ قۇيىمەن بۇ تېمىنى ئاخىرىدا   alsuyar تەھرىرلىگەن. ۋاقتى  2010-9-24 13:21  

Shahdiyar تۈنۈگۈن  15:16
يېڭى ئۆگەنگۈچىلەرگە قولايلىق بولۇشى ئۈچۈن يەنە بىر مەسىلە كەم قاپتۇ.
بىر قېتىم تىزىملىغاندىن كېيىن 2- قېتىم ئىجرا قىلغاندا يەنە تىزىملاشنى تەلەپ قىلىدىكەن. بۇنىڭ ئۈچۈن مەلۇم بىر ھۆججەتكە مۇقىملىۋەتسەك بولىدۇ.
بىرلا قېتىم تىزىملىتىپ قويغاندىن كېيىن تاكى سىستېمىنى قايتا قاچىلىمىسا تىزىملىتىشنى تەلەپ قىلمايدىغان سىستېمىنى قايتا قاچىلىغاندىن كېيىن ئاندىن تىزىملىتىشنى تەلەپ قىلىدىغان يەنى ھازىرقى ھەقلىق دېتاللارغا ئوخشاش مۇشۇنداق شەكلىنىمۇ تەمىنلەپ يوللاپ قويسىڭىز تېخىمۇ قولايلىق بولاتتى.

جىددىي ئىشىم چىقىپ قالدى. مۇشۇنچىلىك يازاي.
alsuyar تۈنۈگۈن  19:30
ئىنكاس قايتۇرۇش Shahdiyar نىڭ تېمىسى
مەنمۇ شۇنى قېتىپ يوللاشنى ئويلاشقان ئىدىم ، ئەمما تورداشلارنىڭ قېلىپ بېقىشىنى ، قىلالمىغان ۋاقىتتا ئىنكاس يازسا داۋامىنى يېزىشنى  ئويلىغان ئىدىم . تورداشلار بىلىدىغان چېغى سىزدىن باشقىسى بۇ توغرالىق ئىنكاس يازمىدى.
   

intil.cn 因特乐 知识信息网 Uyghur Office ( 新ICP备10003688号)|ئالاقىلىشىڭ

GMT+8, 2010-9-27 14:50.

Powered by Discuz! X1(NurQut Team)

© 2001-2010 Comsenz Inc.