This blog is about the dotnet.all types of codes,news about dotnet including asp.net,vb.net,c# and know about new dotnet technology.programing in asp.net,vb.net,c#, ajax, AJAX tech support for .net and discuss the new technology in dotnet.ncluding asp.net,vb.net,c# and know about new dotnet technology.programing in asp.net,vb.net,c#, ajax, AJAX tech support for .net and discuss the new technology in dotnet.asp.net programming,dot net programming,dotnet programs,dotnet source code,source code.

Free Hosting

Free Hosting

Thursday, January 22, 2009

Get and set a new printer(VB.NET)

Get and set a new printer(VB.NET)

Version: VB 2005
Compatibility: VB 2005
Category: Miscellaneous

Get and set a new printer.

Declarations:
none

Code:
Public Class Printers
'''


''' 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 Vista/Longhorn
' Platform 1 1 2 2 2 2 2
' Version.Major 4 4 4 5 5 5 6
' Version.Minor 10 90 0 0 1 2 0

'''
''' 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
'''
''' 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

'''
''' 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

0 comments:

dotnet(.Net) Project Source code Downloads and Tutorials

Email Subscrption



Enter your email address:

Delivered by FeedBurner

Feedburner Count

Blog Archive

Unique Visitor

Design by araba-cı | MoneyGenerator Blogger Template by GosuBlogger