Posted at :
Jun/06/2007
Bagaimana caranya agar kita bisa mendapatkan informasi printer yang terinstall di local komputer dan Network? Ada beberapa cara untuk mendapatkan informasi tersebut, diantaranya adalah :
- Menggunakan namespace System.Drawing.Printing
- Menggunakan WMI Query
Pada artikel kali ini saya akan membuat contoh code yang menggunakan kedua cara di atas. Misalkan code nya saya tempatkan di sebuah module. Pertama kita perlu imports terlebih dahulu namespace System.Drawing.Printing, setelah itu dengan menggunakan property InstalledPrinters yang terdapat di dalam PrinterSettings class maka informasi tersebut sudah dapat kita tampilkan. Yang perlu kita lakukan hanyalah melakukan iterasi terhadap properti InstalledPrinters tsb, potongan code nya seperti ini :
Imports System.Drawing.Printing
Module GetPrinterInfo
Public Sub GetLocalPrinter()
Console.WriteLine("Printer on Local Machine...")
For Each aPrinter As String In _
PrinterSettings.InstalledPrinters
Console.WriteLine(aPrinter)
Next Console.WriteLine("")
End Sub
.....
Untuk menampilkan informasi printer dengan menggunakan WMI Query maka langkah-langkah yang perlu kita lakukan adalah :
- Buat sebuah variabel dari class Management.ManagementObjectSearcher. Objek ini digunakan sebagai parser WMI Query yang digunakan.
- Buat sebuah variabel dari class Management.ManagementObjectCollection yang digunakan untuk menampung koleksi object berdasarkan WMI Query.
- Buat sebuah variabel dari Management.ManagementObject yang digunakan untuk melakukan iterasi dari koleksi objek yang dihasilkan dari langkah kedua di atas.
Potongan code nya seperti ini :
Public Sub GetNetworkPrinter()
Dim searchPrinter As Management.ManagementObjectSearcher
Dim resultPrinter As Management.ManagementObjectCollection
Dim aPrinter As Management.ManagementObject
searchPrinter = New Management.ManagementObjectSearcher( _
"Select * From Win32_Printer")
resultPrinter = searchPrinter.Get
Console.WriteLine("Printer on Local Network...")
For Each aPrinter In resultPrinter
Console.WriteLine(aPrinter!Name)
Next Console.ReadLine()
End Sub
Setelah itu prosedur yang kita buat diatas tinggal kita panggil lewat prosedur Main yang sifatnya Shared sebagai application entry point nya, code lengkapnya seperti ini :
Imports System.Drawing.Printing
Module GetPrinterInfo
Public Sub GetLocalPrinter()
Console.WriteLine("Printer on Local Machine...")
For Each aPrinter As String In _
PrinterSettings.InstalledPrinters
Console.WriteLine(aPrinter)
Next Console.WriteLine("")
End Sub
Public Sub GetNetworkPrinter()
Dim searchPrinter As Management.ManagementObjectSearcher
Dim resultPrinter As Management.ManagementObjectCollection
Dim aPrinter As Management.ManagementObject
searchPrinter = New Management.ManagementObjectSearcher( _
"Select * From Win32_Printer")
resultPrinter = searchPrinter.Get
Console.WriteLine("Printer on Local Network...")
For Each aPrinter In resultPrinter
Console.WriteLine(aPrinter!Name)
Next Console.ReadLine()
End Sub
Sub Main()
GetLocalPrinter()
GetNetworkPrinter()
End Sub
End Module