Printer

  • Uploaded by: Niraj Sharma
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Printer as PDF for free.

More details

  • Words: 689
  • Pages: 4
Public Class Printers ''' <summary> ''' Eingetragene Drucker ermitteln und an StringCollection zur ''' Ausgabe �bergeben ''' Public Shared Function GetPrinters() As StringCollection 'Be�etigte Variablen deklarieren Dim sc As StringCollection = New StringCollection() Dim scope As String = "ROOT\CIMV2" Dim query As String = "Select * from Win32_Printer" Dim Printers As New ManagementObjectSearcher(scope, query) ' Schleife durchlaufen und ermittelte Drucker an... ' StringCollection �bergeben For Each Printer As ManagementObject In Printers.Get() Dim PrinterDescription As String = _ DirectCast(Printer.GetPropertyValue("Name"), String) sc.Add(PrinterDescription) Next Return sc End Function End Class Public Class OS ' Win98 WinMe WinNT Win2K WinXP Server2003 ' Platform 1 1 2 2 2 2 ' Version.Major 4 4 4 5 5 5 ' Version.Minor 10 90 0 0 1 2

Vista/Longhorn 2 6 0

''' <summary> ''' Betriebsystem ermitteln ''' Public Shared Function IsWindowsXPOrHigher() As Boolean If OSVersion.Platform <> PlatformID.Win32NT OrElse _ OSVersion.Version < New Version(5, 1) Then ' Stimmt das Ergebnis mit dem Vergleich ueberein ' wird True zurueckgegeben... Return False Else ' ... sonst False Return True End If End Function End Class Public Class SetPrinter ''' <summary> ''' Neuen Standard-Drucker systemweit setzen ''' Public Shared Function ChangePrinter(ByVal PrinterName As String) As Boolean ' Ben�tigte Variablen Dim scope As String = "ROOT\CIMV2" Dim query As String = "Select * from Win32_Printer" Const DefaultPrinter As String = "SetDefaultPrinter" Const ReturnValue As String = "ReturnValue" ' Fehler�berwachung einschalten Try Dim Printers As New ManagementObjectSearcher(scope, query)

For Each Printer As ManagementObject In Printers.Get() Dim PrinterDescription As String = _ DirectCast(Printer.GetPropertyValue("Name"), String) ' Vergleichsvariable deklarieren und initialisieren Dim Compared As Integer = String.Compare( _ PrinterDescription, PrinterName, True) ' �bergebenen Drucker mit vorhandenen Druckern vergleichen. ' Stimmt der �bergebene Drucker mit dem Vergleich �berein ' wird der �bergebene Drucker... If Compared = 0 Then ' ... als Standarddrucker systemweit gesetzt Dim mbo As ManagementBaseObject = _ Printer.InvokeMethod(DefaultPrinter, Nothing, Nothing) ' Ist das R�ckgabeergebnis = 0 gibt die Funktion... If CType(mbo.Properties(ReturnValue).Value, Int32) = 0 Then ' True zurueck Return True End If End If Next Catch ex As Exception ' Eventuell auftretenden Fehler abfangen ' Fehlermeldung ausgeben MessageBox.Show(ex.Message.ToString(), "Info") End Try Return False End Function ''' <summary> ''' Ausgabe eines Hinweises ob der Vorgang erfolgreich war ''' Public Shared Sub OutPutMessage(ByVal State As Boolean) Dim sMsg As String = "" Select Case State Case True sMsg = "Der ausgew�hlte Drucker wurde gesetzt." Case Else sMsg = "Der ausgew�hlte Drucker konnte nicht gesetzt werden." End Select MessageBox.Show(sMsg, "Info") End Sub End Class ' alle verf�gbaren Drucker anzeigen Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Button deaktivieren Button1.Enabled = False ' Fehler�berwachung einschalten Try ' Sanduhr einblenden Me.Cursor = Cursors.WaitCursor ' StringCollection deklarieren und initialisieren Dim sc As StringCollection = Printers.GetPrinters()

' Enth�lt die StringCollection Daten dann... If sc IsNot Nothing Then ' ... StringCollection in einer Schleife durchlaufen... For Each Printer As String In Printers.GetPrinters() ' und die Eintr�ge an die ListBox �bergeben ListBox1.Items.Add(Printer) Next ' Zum Testen eines nicht vorhandenen Drucker... ListBox1.Items.Add("(Fehler Drucker - zum Testen)") Else ' Enth�lt die StringCollection keine Daten, Hinweis anzeigen Me.Cursor = Cursors.Default MessageBox.Show("Es konnten keine Drucker ermittelt werden.", "Info") End If Catch ex As Exception ' Eventuell auftretenden Fehler abfangen und Hinweis anzeigen Me.Cursor = Cursors.Default MessageBox.Show(ex.Message.ToString(), "Info") End Try ' Standard-Mauszeiger wiederherstellen Me.Cursor = Cursors.Default ' Button wieder aktivieren Button1.Enabled = True End Sub Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged ' Button f�r "Standard-Drucker setzen" aktivieren/deaktivieren Button2.Enabled = (ListBox1.SelectedIndex >= 0) End Sub ' Ausgew�hlten Drucker systemweit als neuen Standard-Drucker setzen Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click ' Fehlerueberwachung einschalten Try ' Dieses Beispiel l�uft ab Windows XP. Daher wird zun�chst ' das verwendete Betriebssystem gepr�ft If Not OS.IsWindowsXPOrHigher Then MessageBox.Show("Das Beispiel wird erst ab Windows XP unterst�tzt!", "Info") Exit Sub Else ' ChangePrinter mit neuem Drucker aufrufen... Dim bResult As Boolean = SetPrinter.ChangePrinter( _ Me.ListBox1.SelectedItem.ToString()) ' ... und eine Meldung �ber den Status des Vorgangs ausgegeben SetPrinter.OutPutMessage(bResult) End If Catch ex As Exception ' Eventuell auftretenden Fehler abfangen und Hinweis anzeigen MessageBox.Show(ex.Message.ToString(), "Info") End Try End Sub

End Class

Related Documents

Printer
June 2020 28
Printer
May 2020 30
Printer
May 2020 30
Printer
November 2019 48
Printer
April 2020 27
Printer
October 2019 42

More Documents from "Niraj Sharma"