Generate SN dgn trigger CPU ID
Ide ini tercipta saat ngobrol santai bareng broklyn aka Piter salah seorang programer dari miSolusi, kemarin tim development berhasil mendapatkan deal disebuah perusahaan retail komputer untuk develop POSnya, nah setelah proses instalasi, ternyata software yang dikembangkan ini bisa diduplikasi kekomputer lain menggunakan Norton-GHOST, wah kalo seperti ini bisa-bisa aplikasi yang kita jual didistribusikan tanpa sepengetahuan kita. Akhirnya kami mencoba menganalisa kemungkinan proteksi yang bisa diimplementasikan. Akhirnya kami mengambil keputusan untuk menggunakan CPU ID sebagai patokan Serial Number Softwarenya, dengan metode seperti ini software tidak akan bisa diduplikasi kekomputer lainnya.
Ok, sekarang kita akan membahas bagaimana cara mendapatkan sebuah CPU ID menggunakan kode visual basic, dulu saya pernah memposting tentang WMI (Windows Management Instrument) karena sekarang code yang kita bahas menggunakan WMI untuk mendapatkan nilai dari CPU ID, Yah tidak mau berkata panjang lebar, langsung aja kita mengintip code programnya. Codenya seperti Dibawah ini, agak panjang soalnya saya langsung COPAS dari formnya, dipilah sendiri ya lagi malas
Private asCpuPaths() As String
Private m_objCPUSet As SWbemObjectSet
Private m_objWMINameSpace As SWbemServices
Option Explicit
Private Sub cmdDone_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim oCpu As SWbemObject 'WMI Object, in this case, local CPUs
Dim sPath As String, sCaption As String
Dim lElement As Long
ReDim asCpuPaths(0) As String
On Error GoTo ErrorHandler
'Get Default NameSpace, which will be the one for the local machine
Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2
Set m_objWMINameSpace = GetObject("winmgmts:")
lstCPU.Clear
'Get CPU set
Set m_objCPUSet = m_objWMINameSpace.InstancesOf("Win32_Processor")
sCaption = m_objCPUSet.Count & " processor"
If m_objCPUSet.Count <> 1 Then sCaption = sCaption & "s"
sCaption = sCaption & " detected on this machine"
lblTitle.Caption = sCaption
'Populate list box with CPU names
For Each oCpu In m_objCPUSet
With oCpu
sPath = .Path_ & ""
If sPath <> "" Then
lstCPU.AddItem .Name
'save path to array, so on machines with multiple CPUs,
'each can be identified and their info loaded into text box
lElement = IIf(asCpuPaths(0) = "", 0, UBound(asCpuPaths) + 1)
ReDim Preserve asCpuPaths(lElement) As String
asCpuPaths(lElement) = sPath
End If
End With
Next
If lstCPU.ListCount <> 0 Then lstCPU.ListIndex = 0
CleanUp:
Set oCpu = Nothing
Exit Sub
ErrorHandler:
MsgBox "CPU Information could not be displayed due to the following error: " & Err.Description, , "WMI Demo Failed"
GoTo CleanUp
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set m_objCPUSet = Nothing
Set m_objWMINameSpace = Nothing
End Sub
Private Sub lstCPU_Click()
Dim oCpu As SWbemObject
'Refer to SDK documentation for more detail about each of these properties
Dim sInfoString As String
On Error Resume Next
Set oCpu = m_objCPUSet(asCpuPaths(lstCPU.ListIndex))
With oCpu
sInfoString = "Description: " & .Description & vbCrLf
sInfoString = sInfoString & "Processor ID: " & .ProcessorID & vbCrLf
sInfoString = sInfoString & "Status: " & .Status & vbCrLf
sInfoString = sInfoString & "Manufacturer: " & .Manufacturer & vbCrLf
sInfoString = sInfoString & "Availability: " & AvailabilityToString(.Availability) & vbCrLf
sInfoString = sInfoString & "Load Percentage: " & .LoadPercentage & vbCrLf
sInfoString = sInfoString & "Current Clock Speed: " & .CurrentClockSpeed & " MHz" & vbCrLf
sInfoString = sInfoString & "Maximum Clock Speed: " & .MaxClockSpeed & vbCrLf
sInfoString = sInfoString & "Level 2 Cache Size: " & .L2CacheSize & vbCrLf
sInfoString = sInfoString & "Level 2 Cache Speed: " & .L2CacheSpeed & vbCrLf
sInfoString = sInfoString & "Power Management Supported: " & .PowerManagementSupported
End With
txtCpu.Text = sInfoString
End Sub
'Conversions from code to string were developed
'based on information in WMI SDK documentation
Private Function AvailabilityToString(Code As Integer) As String
Dim sAns As String
Select Case Code
Case 1, 2
sAns = "Unknown"
Case 3
sAns = "Running/Full Power"
Case 4
sAns = "Warning"
Case 5
sAns = "In Test"
Case 6
sAns = "Not Applicable"
Case 7
sAns = "Power Off"
Case 8
sAns = "Off Line"
Case 9
sAns = "Off Duty"
Case 10
sAns = "Degraded"
Case 11
sAns = "Not Installed"
Case 12
sAns = "Install Error"
Case 13
sAns = "Power Save - Unknown"
Case 14
sAns = "Power Save - Low Power Mode"
Case 15
sAns = "Power Save - Standby"
Case 16
sAns = "Power Cycle"
Case 17
sAns = "Power Save - Warning"
Case Else
sAns = "Unknown"
End Select
AvailabilityToString = sAns
End Function
Incoming search terms:
- proteksi aplikasi visual basic processorid
- sn cpu





stmikbg.com adalah web untuk komunitas bagi anak-anak stmik bumigora khususnya dan anak-anak IT umumnya, baek yang cupu maupun yang expert.
June 12th, 2009 at 8:17 am
emailnya mana???????????????