Andrew fiade pemrograman jaringan
BAB 3 SYSTEM AKSES WINDOWS ISI HALAMAN INI Pendahuluan ......................................................................................................................... 1 Deteksi CPU .......................................................................................................................... 2 Resolusi Layar ....................................................................................................................... 5 Cek sound ............................................................................................................................. 6 Cek alokasi memori ............................................................................................................... 8 Mendapatkan user name ...................................................................................................... 9 Proses yang berjalan ........................................................................................................... 10 Waktu ................................................................................................................................. 12 PENDAHULUAN Kita lanjutkan modul kali ini. Dalam isi materi dalam modul ini, kita akan mempelajari apa
yang dapat dilakukan oleh VB. NET untuk mendeteksi atau melakukan sebuah informasi dari sistem informasi windows yang digunakan.
Pencapaian dalam modul ini digunakan untuk modul berikutnya yaitu remote komputer, yang dapat dilakukan melalui protokol TCP dan UDP. Ketika program ini berjalan atau berfungsi, maka dalam remote komputer, komputer program client mendapatkan informasi informasi cpu, user name dan lainnya dari komputer program server.
Outline dalam modul ini yaitu: Informasi CPU, Mendeteksi CPU dari komputer yang digunakan
Resolusi Monitor, Mendapatkan Ukuran Resolusi monitor Username Windows Memori.
Sound. Proses yang berjalan.
DETEKSI CPU
Kita langsung membuat program dalam hal ini tetap program yang akan digunakan adalah
VB. NET, Desain Program dapat dilihat pada gambar dibawah
Gambar 3. 1
Properti pada Form yang digunakan.Button Listbox Label
Untuk Pengenalan Regedit di windows atau registri, dan pendeteksian CPU, yang sudah dikenali oleh bahasa pemrograman VB.NET maka definisi tersebut dikenali melalui import. Import yang digunakan adalah:
Imports System Imports Microsoft.Win32
Imports System.Diagnostics Imports System.Windows.Forms
Proses akan menampilkan saat user mengklik tombol dan program akan menampilkan di list box. Maka klik button tersebut, sehingga tampilan seperti ini (tidak di tulis secara manual)
Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click End SubInformasi yang akan ditampilkan yaitu detail dari prosesor, nama prosesor, vendor dan identifier Prosesor. Maka anda dapat mengetikan tampilan program disela antara button klik, lengkapnya program tersebut dapat anda lihat pada kode program dibawah ini: Kode program
Kode Program Deteksi CPU
Imports System Imports Microsoft.Win32 Imports System.Diagnostics Imports System.Windows.Forms Public Class Form1 Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim m_LM As RegistryKey Dim m_HW As RegistryKey Dim m_Des As RegistryKey Dim m_System As RegistryKey Dim m_CPU As RegistryKey
Dim m_Info As RegistryKey
m_LM = Registry.LocalMachine m_HW = m_LM.OpenSubKey( "HARDWARE" ) m_Des = m_HW.OpenSubKey( "DESCRIPTION" ) m_System = m_Des.OpenSubKey( "SYSTEM" ) m_CPU = m_System.OpenSubKey( "CentralProcessor" ) m_Info = m_CPU.OpenSubKey( "0" ) ListBox1.Items.Add( "Prosesor =" + m_Info.GetValue( "VendorIdentifier" )) + ListBox1.Items.Add( "Prosesor Name =" m_Info.GetValue( "ProcessorNameString" )) ListBox1.Items.Add( "Identifier = " + m_Info.GetValue( "Identifier" )) ListBox1.Items.Add(m_Info.GetValue( "~Mhz" ) & "MHz" )
End Sub End Class Maka jika program anda benar dan anda jalankan, tampilan nama prosesor detail dengan spesifikasi dari prosesor. Jika anda dapat lihat pada gambar terdapat tambahan button Resolusi. Untuk melanjutkan program menampilkan resolusi layar.
Gambar 3. 2 Tampilan Program Ekseskusi
RESOLUSI LAYAR
Sudha disinggung sebelumnya, maka desain tampilan seperti pada gambar diatas, dan menambahkan button resolusi. Dengan pengubahan properti Button 1, dengan text = CPU Button 2, dengan text =Resolusi
Untuk resolusi layar, maka diperlukan pengenalan oleh VB.Net untuk hal tersebut, ditambahkan Imports System.Drawing.
Sama halnya dengan deteksi CPU, maka ketika user klik tombol resolusi akan ditampilkan ukuran resolusi layar. Program lengkapnya
Kode Program Resolusi Layar
Imports System.Drawing Private Sub Button2_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Dim bnds As Rectangle = My .Computer.Screen.Bounds
ListBox1.Items.Clear() ListBox1.Items.Add( "Resolusi Layar: " & bnds.Width & " by " & bnds.Height)
End Sub Anda dapat menambahkan button, misalkan button3 untuk mendapatkan versi dari aplikasi kita, misalkan ada pertanyaan: kok tampilannya beda dengan yang diatas (Seharunya kan ada 3 button). Tidak masalah dengan hal tersebut...anggap aja test Gambar 3. 3 Tampilan Desain Versi
Dan penulisan kode dengan event, saat tombol versi diklik, lengkapnya
Kode Program Versi
Public Class Form1 Private Sub Button2_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
With My .Application.Info.Version
ListBox1.Items.Add( "Version " & .Major & _
"." & .Minor & " (Build " & .Build & "." & _
.Revision)
End With End Sub End Class
CEK SOUND
Untuk mengecek Sound dapat bekerja dengan baik atau tidak, sama kita tambahkan kembali button dengan text =sound. Dan ditampilkan dilistbox. Dan tampilan ada ketika tombol sound diklik.
Gambar 3. 4 Tampilan Desain Sound Untuk definisi program, maka library yang kita tambahkan yaitu Imports System.Net.
dalam hal ini kita mendefinisikan sebuah prosedure play sound. Untuk mengenali hardware sound.
Informasi penjalanan program saat button klik
Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Silahkan melihat kode program lengkapnya
Kode Program Cek Sound
Imports System.Net Public Class Form1 Private Declare Auto Function PlaySound Lib "winmm.dll" ( ByVal
lpszSoundName As String , ByVal hModule As Integer , ByVal dwFlags As
Integer ) As Integer Const SND_FILENAME As Integer = &H20000 Const SND_ALIAS As Integer = &H10000 Const SND_SYNC As Integer = &H0 Declare Auto Function waveOutGetNumDevs Lib "winmm.dll" Alias
"waveOutGetNumDevs" () As Int32
Declare Auto Function sndPlaySound Lib "WINMM.DLL" ( ByVal FileName As String , ByVal Options As Int32) As Int32 Private Const SND_MEMORY As Integer = &H4 Private Const SND_ASYNC As Integer = &H1 Private Const PROCESS_DOMAIN As String = "" Const SND_SYNC1 = &H0 Const SND_ASYNC1 = &H1 Const SND_NODEFAULT = &H2 Const SND_LOOP = &H8 Const SND_NOSTOP = &H10 Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim i As Integer
i = waveOutGetNumDevs() ListBox1.Items.Clear()
If i > 0 Then
ListBox1.Items.Add( "Can play wav file" )
Else
ListBox1.Items.Add( "cannot play wav file" )
End If End Sub End Class
CEK ALOKASI MEMORI
Untuk alokasi memori, masih menggunakan form yang sama untuk cek sound. Ditambahkan sebuah keterangan memori alokasi yang tersedia di komputer yang digunakan. Dengan menambahkan library Imports System.IO. dan ditambahkan keterangan di sela output sound. Kita dapat lihat pada program lengkapnya.
Kode Program Cek Alokasi Memori
Imports System.IO Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim i As Integer
i = waveOutGetNumDevs() ListBox1.Items.Clear()
If i > 0 Then
ListBox1.Items.Add( "Can play wav file" ) ListBox1.Items.Add( "baru : Allocated memory " & GC.GetTotalMemory( True ))
Else
ListBox1.Items.Add( "cannot play wav file" )
End If End Sub
MENDAPATKAN USER NAME
Sama halnya dengan alokasi memori, untuk mendapatkan username, kita tambahkan beberapa perintah, yaitu definisi Imports System dan username disela program contohnya dapat dilihat
Kode Program Dapatkan Username
Imports System Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim i As Integer
i = waveOutGetNumDevs() ListBox1.Items.Clear()
If i > 0 Then
ListBox1.Items.Add( "Can play wav file" ) ListBox1.Items.Add( "Allocated memory " & GC.GetTotalMemory( True )) ListBox1.Items.Add( "baru :UserName: " & System.Environment.UserName)
Else
ListBox1.Items.Add( "cannot play wav file" )
End If End Sub Contoh output dari program cek sound, alokasi memori dan username lihat digambar dibawah ini:
Gambar 3. 5 Output Program
PROSES YANG BERJALAN
Dalam keseharian, saat menjalankan komputer, terkadang service yang aktif di windows sering kali melakukan pemborosan memori ataupun pula ada service yang aneh dan tidak seharusnya dijalankan. Dalam hal ini kita ingin melihat proses apa saja yang sedang aktif saat komputer digunakan.
Tampilan desain menambahkan button dari project sebelumnya. Dan dibawah sudah hasil program proses ketika dijalankan.
Gambar 3. 6 Tampilan Desain Proses
Untuk library ditambahkan Imports System.Threading. Program akan jalan ketika tombol proses dijalankan dan ditampilkan di list box. Anda dapat mengetikan kode program dibawah ini.
Kode Program Proses
Imports System.Threading Dim ProcessList As System.Diagnostics.Process()
ProcessList = System.Diagnostics.Process.GetProcesses()
Dim Proc As System.Diagnostics.Process
ListBox1.Items.Clear()
For Each Proc In ProcessList
ListBox1.Items.Add(Proc.ProcessName)
Next End Sub WAKTU
Untuk mendapatkan waktu standar yang digunakan, apakah menggunakan regional Asia, Eropa atau yang lainnya. Dengan tampilan form sama seperti sebelumnya, tambahan yang dilakukan di program atau anda dapat membuat tambahan button sendiri dan menambah program di button baru tersebut.
Program dapat dilihat di kode program
Kode Program Waktu
Private Sub Button3_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Dim ProcessList As System.Diagnostics.Process() Dim localAll As Process() = Process.GetProcesses()
ProcessList = System.Diagnostics.Process.GetProcesses()
Dim Proc As System.Diagnostics.Process
ListBox1.Items.Clear()
For Each Proc In ProcessList
' ListBox1.Items.Add(Proc.ProcessName) ' ListBox1.Items.Add(localAll)
Next Dim localZone As TimeZoneInfo = TimeZoneInfo.Local Dim a As String
a = "Local Time Zone ID: " + localZone.Id ListBox1.Items.Add(a) a = " Display Name is: ." + localZone.DisplayName ListBox1.Items.Add(a) a = " Standard name is: {0}." + localZone.StandardName ListBox1.Items.Add(a) a = " Daylight saving name is: {0}." + localZone.DaylightName ListBox1.Items.Add(a)
End Sub Dan hasil ketika dijalankan seperti pada gambar Gambar 3. 7 Tampilan Desain Waktu
Untuk program dari cek sound, versi, alokasi memori, username , waktu dapat dilihat disini Program lengkap
Kode Program Lengkap
Imports System.Net Imports System.IO Imports System Imports System.Threading Public Class Form1 Private Declare Auto Function PlaySound Lib "winmm.dll" ( ByVal
lpszSoundName As String , ByVal hModule As Integer , ByVal dwFlags As
Integer ) As Integer Const SND_FILENAME As Integer = &H20000 Const SND_ALIAS As Integer = &H10000 Const SND_SYNC As Integer = &H0 Declare Auto Function waveOutGetNumDevs Lib "winmm.dll" Alias
"waveOutGetNumDevs" () As Int32
Declare Auto Function sndPlaySound Lib "WINMM.DLL" ( ByVal FileName As String , ByVal Options As Int32) As Int32 Private Const SND_MEMORY As Integer = &H4 Private Const SND_ASYNC As Integer = &H1 Private Const PROCESS_DOMAIN As String = "" Const SND_SYNC1 = &H0 Const SND_ASYNC1 = &H1 Const SND_NODEFAULT = &H2 Const SND_LOOP = &H8 Const SND_NOSTOP = &H10 Private Sub Button2_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
With My .Application.Info.Version
ListBox1.Items.Add( "Version " & .Major & _
"." & .Minor & " (Build " & .Build & "." & _
.Revision)
End With End Sub Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim i As Integer
i = waveOutGetNumDevs() ListBox1.Items.Clear()
If i > 0 Then
ListBox1.Items.Add( "Can play wav file" ) ListBox1.Items.Add( "Allocated memory " & GC.GetTotalMemory( True )) ListBox1.Items.Add( "UserName: " & System.Environment.UserName)
Else
ListBox1.Items.Add( "cannot play wav file" )
End If End Sub Private Sub Button3_Click( ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Dim ProcessList As System.Diagnostics.Process() Dim localAll As Process() = Process.GetProcesses()
ProcessList = System.Diagnostics.Process.GetProcesses()
Dim Proc As System.Diagnostics.Process
ListBox1.Items.Clear()
For Each Proc In ProcessList
' ListBox1.Items.Add(Proc.ProcessName) ' ListBox1.Items.Add(localAll)
Next Dim localZone As TimeZoneInfo = TimeZoneInfo.Local Dim a As String
a = "Local Time Zone ID: " + localZone.Id ListBox1.Items.Add(a) a = " Display Name is: ." + localZone.DisplayName ListBox1.Items.Add(a) a = " Standard name is: {0}." + localZone.StandardName ListBox1.Items.Add(a) a = " Daylight saving name is: {0}." + localZone.DaylightName ListBox1.Items.Add(a)
End Sub End Class Modul Selanjutnya menggabungkan system windows dengan aplikasi TCP Server dan UDP Server, diharapkan informasi dari sistem client atau server akan mengirimkan properti hardware ke server atau client. Sehingga kita mendapatkan informasi penting dari salah satu komputer, tanpa mengecek langsung ke komputer yang dituju