- توردا
- 10 سائەت
- ئاخىرقى قېتىم
- 2012-5-26
- تىزىملاتقان
- 2010-9-15
- شۆھرەت
- 146
- تىللا
- 153
- تۆھپە
- 98
- ھوقۇقى
- 30
- جۇغلانما
- 572
- ئالبوم
- 0
- بلوگ
- 0
- خاتىرە
- 0
- يازما
- 29
- تېما
- 3
- نادىر
- 0
- ھەمبەھر
- 0
- UID
- 395
- تۆھپە
- 98
- تىللا
- 153
- شۆھرەت
- 146
|
VB6.0دىن پايدىلىنىپ يۇمشاق دېتاللارغا قاتتىق دېتال ئۇچۇرىغا باغلانغان تىزىملاش نومۇرى ھاسىل قىلىش
【يارۇق بلوگىنىڭ تەكلىپلىك يازغۇچىسى، VB6.0 سەھىپىسىنىڭ ئاپتۇرى توردىشىمىز مارىس 36 ئۇزاق يىللىق VB6.0 ئۆگەنگۈچىسى ۋە تەتقىقاتچىسى بولۇش سۈپىتى بىلەن ئىگەللىگەن بىلىملىرى تولىمۇ چوڭقۇردۇر.بۇ توردىشىمىزنىڭ ئىشلىگەن يۇمشاق دېتاللىرى خېلى كۆپ بولۇپ مۇئەييەن ئىشلىتىش ئۈنۈمىگە ئىگە. بىز بۇندىن كېيىن ھەپتە بىر VB6.0 دەرىسلىكلىرى بۇيىچە ئۆگىنىش ماتېرىيالى ۋە ئەسلى كود، پۈتكەن پروگرامما نۇسخىسى قاتارلىقلارنى كەڭ توردىشىمىز بىلەن ھەمبەھىرلەندۈرۈشكە تىرىشىمىز. بۈگۈنكى تۇنجى VB6.0 سەھىپىسىگە بۇ توردىشىمىز يېقىندا پۈتتۈرگەن «VB6.0دىن پايدىلىنىپ يۇمشاق دېتاللارغا قاتتىق دېتال ئۇچۇرىغا باغلانغان تىزىملاش نومۇرى ھاسىل قىلىش» ناملىق دەرىسلىكنى يوللىدۇق. كەڭ VB6.0 گە قىزىققۇچى دوستلارنىڭ پايدىلىنىشىنى چۈشەنمىگەن يەرلىرىنى ئاستىغا ئىنكاس شەكلىدە قالدۇرۇشنى ئۈمىد قىلىمىز.
ھۆرمەت بىلەن: بلوگگېر كۈنتىكىن
تېما ئاپتورى: مارىس36】
VB6.0دىن پايدىلىنىپ يۇمشاق دېتاللارغا قاتتىق دېتال ئۇچۇرىغا باغلانغان تىزىملاش نومۇرى ھاسىل قىلىش
ئاساسىي تېمىدىكى مەسىلىلەر تۆۋەندىكى سوئاللار ئاساسىدا ھەل قىلىنىدۇ: قاتتىق دېتال ئۇچۇرى دېگەن نېمە؟ يۇمشاق دېتال تىزىملاش نومۇرى دېگەن نېمە؟ نېمىشقا يۇمشاق دېتاللارغا تىزىملاش نومۇرى ھاسىل قىلغاندا ئۇنىڭدىن پايدىلىنىمىز؟ تىزىملاش نومۇرىنى قانداق ئۇسۇلدا ھاسىل قىلىمىز؟
قاتتىق دېتال ئۇچۇرى دېگەن نېمە؟
قاتتىق دېتال ئۇچۇرى – قاتتىق دېتال ياسىغان زاۋۇتلارنىڭ قاتتىق دېتاللارنىڭ توك يولى تاختىسىغا خاتىرىلەپ قويغان مەھسۇلات ئۇچۇرلىرىنى كۆرسىتىدۇ. مەسىلەن، زاۋۇتتىن چىققان ۋاقتى، تىپى، رەت نومۇرى (مۇشۇنداق قاتتىق دېتالدىن قانچىنى ياسىسا ھەر بىرىگە ئايرىم رەت نومۇرى قۇيىدۇ. بۇ تېمىدىكى ئۇچۇردىن پايدىلىنىش نىشانىمىزمۇ دەل مۇشۇنىڭدىن ئىبارەت)، زاۋۇت (تور بەت) ئادرېسى … قاتارلىقلار.
يۇمشاق دېتال تىزىملاش نومۇرى دېگەن نېمە؟
بىز ياسىغان يۇمشاق دېتاللارنى خالىغانچە كۆچۈرۈپ تارقىتىلىشتىن ساقلاپ، ئەمگەك مېۋىمىزنى قوغداش ئۈچۈن لايىھىلەنگەن، ھەر بىر كومپيۇتېرغا ئايرىم تەقسىملىنىدىغان ئاچقۇچ ئۇچۇر – يۇمشاق دېتال تىزىملاش نومۇرىدۇر. مۇشۇ نومۇرنى بىزدىن ئىلتىماس قىلمىغىچە يۇمشاق دېتالنى قوزغىتالمايدۇ.
3. نېمىشقا يۇمشاق دېتاللارغا تىزىملاش نومۇرى ھاسىل قىلغاندا قاتتىق دېتال ئۇچۇرىدىن پايدىلىنىمىز؟
ناۋادا قاتتىق دېتال ئۇچۇرىدىن پايدىلانمىساق بىر كومپيۇتېر بىلەن يەنە بىر كومپيۇتېردا پەرقلىق ئاچقۇچ پەيدا قىلىش مەقسىتىگە يېتەلمەيمىز؛ ئۇنداق بولغاندا بىرلا ئاچقۇچ نومۇر ئارقىلىق ھەممە ئىشلەتكۈچى يۇمشاق دېتالىمىزنى ئىشلىتەلەيدۇ-دە، بىزدىن ئىلتىماس قىلىشنىڭ زۈرۈرىيىتى قالماي، ئەمگىكىمىز نۆلگە تەڭ بولىدۇ.
بەزى يۇمشاق دېتال لايىھىلىگۈچىلەر ئوپتىك دىسكىغا رەت نومۇرى قويۇپ، شۇنى قوزغاتقۇچقا سالغاندىلا ئاندىن قوزغىلىدىغان، ياكى بارماق دىسكىغا ئوخشايدىغان ئاپشاركىنى تەكشۈرۈش ئارقىلىق قوزغىلىدىغان، يەنە بەزىلەر ئىشلەتكۈچى نامى، ئېلخەت ئادرېسى قاتارلىقلارغا ئاساسەن ئاچقۇچ نومۇر تەمىنلەيدىغان ئۇسۇللاردا يۇمشاق دېتالىغا ئىگە بولىدۇ. ئىشەنچلىكلىك دەرىجىسى جەھەتتە ئاپشاركا ئالدىدا، ئۇنىڭدىن قالسا ھەم چىقىم كەتمەيدىغان، ھەم ئىشەنچىلىك ئۇسۇل – دەل قاتتىق دېتال ئۇچۇرىدىن پايدىلىنىش. باشقا ئۇسۇللار ئاۋارىچىلىق بولغاننىڭ ئۈستىگە ئىشەنچسىز.
تىزىملاش نومۇرىنى قانداق ئۇسۇلدا ھاسىل قىلىمىز؟
ئاۋۋال مەلۇم قاتتىق دېتالنىڭ (مەسىلەن، قاتتىق دىسكا، CPU، ئاساسىي تاختا … قاتارلىقلار، ماقالىدە ئىشەنچلىكراق بولغان CPUنىڭ رەت نومۇرىنى ئېلىش مىسال قىلىنىدۇ) رەت نومۇرىنى ئالىمىز. ئۇنى ئازراق ئۆزگەرتىپ (ئۇچۇر پاروللاشنىڭ ئۇسۇللىرى كۆپ. ھازىر ئېقىۋاتقان ئۇسۇللارنى ئايرىم ماقالىدە تونۇشتۇرىمەن، ۋاقىپ بولغايسىلەر) ئىشلەتكۈچىگە كۆرسىتىمىز (بۇ قۇلۇپ، دېيىلىدۇ). ئىشلەتكۈچى بۇ نومۇرنى بىزگە دەپ بېرىدۇ. بىز ئۇنى يەنە كەينىگە قايتۇرۇپ، رەت نومۇرىنى ئىگەللەپ، شۇنىڭغا ماس ئاچقۇچ نومۇرنى ھېسابلاپ ئەۋەتىمىز. يۇمشاق دېتالىمىز ئالدىن بەلگىلەنگەن سېلىشتۇرۇش ئۇسۇلىدا سېلىشتۇرۇپ دەلىللەپ ئاندىن قوزغىلىدۇ (تاكى سىستېمىنى قايتا قاچىلىغۇچە سورىمايدۇ. ناۋادا مەشغۇلات سىستېمىسىنى قايتا قاچىلىسا، پەقەت بىر قېتىم يەنە شۇ ئاچقۇچ نومۇرنى كىرگۈزۈپلا قويسا قايتا سورىمايدۇ). تىزىملانغانلىق ئۇچۇرىنى سىستېمىنىڭ تىزىملاش جەدۋىلىگە ياكى مەلۇم بىر ئورۇندا ھۆججەت قۇرۇپ شۇنىڭدا ساقلايمىز. ھەر قېتىم قوزغالغاندا مۇشۇ ئۇچۇرغا ئاساسەن قوزغىلىدۇ ياكى بىزدىن ئاچقۇچ سورايدۇ.
خوش، ئەمسە قاتتىق دېتال ئۇچۇرىنى قانداق كود بىلەن ئالىمىز؟
بۇنىڭ ئۇسۇللىرى كۆپ. مەسىلەن، C تىلىدا تەييارلانغان Dll ھۆججىتى ئارقىلىق ئېلىش، WMI (بۇنىڭ نېمىلىكىنى ئايرىم ماقالىدە تونۇشتۇرىمەن، ۋاقىپ بولغايسىلەر) ئۇچۇرى ئارقىلىق ئېلىش، Win API ئارقىلىق ئېلىش ۋەھاكازالار. بۇ ماقالىدە مىسال ئۈچۈن WMI ئۇچۇرى ئارقىلىق ئېلىش ئۇسۇلىنى تونۇشتۇرىمەن. چۈنكى، بۇنداق ئۇسۇلدا ئالساق ھەم بىخەتەر، ھەم ئاز كود كېتىدۇ. باشقا ئۇسۇللاردا ياكى كۆپ كود يازىمىز، ياكى بىخەتەرلىكى كاپالەتكە ئىگە ئەمەس.
ئەمسە باشلىۋەتتۇق، دىققىتىڭىز مەندە بولسۇن-ھە!
VB6.0نى قوزغىتىپ، كۆزنەككە بىر دانە كۇنۇپكا (按钮CommandButton)، بىر دانە خەتكۈچ (标签Label)، بىر دانە تېكىست رامكىسى (文本框TextBox) ئورۇنلاشتۇرىمىز. ئاندىن كۆزنەكنى قوش چېكىپ، چىققان كود كۆزنىكىگە تۆۋەندىكى كودنى يازىمىز.
Private Sub Form_Load()
Dim CPUSet, CPU
Set CPUSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Processor")
For Each CPU In CPUSet
Label1 = CPU.ProcessorId
Next
End Sub
كۆرۈنگەن ئۇچۇر CPUنىڭ زاۋۇتتىن چىققان تەرتىپ نومۇرى بولۇپ (بۇنىڭغا ھېچقانداق ئۆزگەرتىش كىرگۈزۈلمىگەن)، بۇنى ئىشلەتكۈچى بىزگە ئەۋەتىدۇ. بىز بۇنىڭغا ماس كېلىدىغان (يەنى، بىز ئالدىن بەلگىلەپ قويغان ھېسابلاپ ئۆزگەرتىلگەن شەكىلدىكى) تىزىملاش نومۇرىنى ھېسابلاپ چىقىپ ئەۋەتىمىز. ناۋادا تىزىملاش نومۇرى ماس كەلسە بۇ دېتال قوزغىلىدۇ ۋە تىزىملاشنى قايتا سورىمايدۇ.
دېتالنىڭ توغرا تىزىملانغانلىقىنى قانداق بىلىمىز ۋە كېيىنكى قېتىم قايتا سورىمايدىغان قىلىمىز؟
باشتا دېگىنىمدەك، سىستېمىنىڭ تىىملاش جەدۋىلىگە ياكى ئۆزىمىز بەلگىلەپ كومپيۇتېرنىڭ مەلۇم دىسكىسىدىكى مەلۇم ئورۇنغا بىر ھۆججەت يېزىپ، شۇ ھۆججەتنىڭ بار-يوقلىقىغا ھۆكۈم قىلىش ئارقىلىق تىزىملانغان-ئەمەسلىكىنى بىلەلەيمىز.
ۋوي، ناۋادا بۇ ھۆججەتنى ساختىپەزلەر ئۆزى قۇرۇۋالسىمۇ تىزىملىتىشنى سورىمايدىغان بوپقالمامدۇ؟ ئەقلىڭىزگە بارىكاللا! شۇڭا بىز ئۇ ھۆججەت ئىچىگە ئاچقۇچ ئۇچۇرلىرىنى بىللە ساقلاپ قويىمىز (بۇ ئۇچۇرلارنىمۇ پاروللاپ ساقلايمىز جۇمۇ!) ۋە سېلىشتۇرۇپ ئاندىن قوزغىلىدىغان قىلىمىز. ناۋادا بۇ ھۆججەت ئۆچۈرۈلۈپ كەتسە ئاچقۇچ ئۇچۇرنى قايتا كىرگۈزسىلا بولدى.
يۇقىرىقى جەريانلارنىڭ تولۇق كودى تۆۋەندىكىچە بولىدۇ (دىققەت، جەريانغا پاروللاش، يەنى 加密 ئۇسۇلى قوللىنىلمىغان، مۇشۇنداقلا ئىشلەتمەڭ!!!...):
Dim ID As String
Private Sub Form_Load()
On Error GoTo nErr
Dim CPUSet, CPU
Set CPUSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf("Win32_Processor")
For Each CPU In CPUSet
ID = CPU.ProcessorId
Next
nErr:
If Err.Number = 53 Then 'Tizimlanmighan
Label1 = ID: Text1 = "Tizimlax nomurini kirguzung!"
Exit Sub
Else
Dim FN As String, S As String
FN = "C:\MyInfo.bin"
Open FN For Input As #1
Line Input #1, S
If S = ID Then Unload Me
Close #1
End If
End Sub
Private Sub Command1_Click()
Dim FN As String, S As String
S = Text1
If S = ID Then
FN = "C:\MyInfo.bin"
Open FN For Output As #1
Print #1, S
Close #1
MsgBox "Tizimlitixingiz Utukluk boldi.", vbInformation
Unload Me
Else
MsgBox "Tizimlax Nomuri Hata!", vbExclamation
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
'Asasi Koznak Kozgilip, dital normal ixlaydu...
Load frmMain: me.Hide
End Sub
قانداق، كود ئاز ۋە چۈشىنىشلىكمىكەن؟
ماقالىنىڭ ۋەزىپىسى مۇشۇ يەردە ئاياغلاشتى. سوئاللار ۋە پىكىرلەرنى ئىنكاس قىلىپ يوللىساڭلار ۋاقتىم يەتسىلا جاۋاب قالدۇرىمەن. ئىشلىرىڭلارغا ئۇتۇق تىلەپ: Mars36
مەنبە: يارۇق بلوگى |
|