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 Andrew fiade pemrograman jaringan
Page 1
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
Andrew fiade pemrograman jaringan
Page 2
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 Sub
Informasi 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
Andrew fiade pemrograman jaringan
Page 3
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
Andrew fiade pemrograman jaringan
Page 4
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 ☺
Andrew fiade pemrograman jaringan
Page 5
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.
Andrew fiade pemrograman jaringan
Page 6
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
Andrew fiade pemrograman jaringan
Page 7
"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.
Andrew fiade pemrograman jaringan
Page 8
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)
Andrew fiade pemrograman jaringan
" &
Page 9
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.
Andrew fiade pemrograman jaringan
Page 10
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
Andrew fiade pemrograman jaringan
Page 11
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) Display Name is: ." + localZone.DisplayName a = " 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
Andrew fiade pemrograman jaringan
Page 12
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
Andrew fiade pemrograman jaringan
Page 13
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) Display Name is: ." + localZone.DisplayName a = " ListBox1.Items.Add(a) a = " Standard name is: {0}." + localZone.StandardName ListBox1.Items.Add(a) Daylight saving name is: {0}." + localZone.DaylightName a = " 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
Andrew fiade pemrograman jaringan
Page 14