vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Drucker   |   VB-Versionen: VB4, VB5, VB614.06.04
Standard-Drucker systemweit festlegen (WMI)

Diesmal zeigen wir Ihnen, wie man per WMI den Standard-Drucker systemweit festlegen kann.

Autor:   Gerhard KuklauBewertung:     [ Jetzt bewerten ]Views:  33.277 
ohne HomepageSystem:  WinXP, Win8, Win10, Win11 Beispielprojekt auf CD 

In einem unserer Extratipps haben wir Ihnen gezeigt, wie man einen bestimmten Drucker systemweit als neuen Standard-Drucker festlegen kann. Hierzu bedarf es allerlei API-Funktionen:
Neuen Standard-Drucker festlegen

Wenn Sie als Betriebssystem Windows XP oder Windows Server 2003 verwenden, lässt sich mit Hilfe des mächtigen WMI-Objekts der Standard-Drucker jedoch sehr viel einfacher und schneller festlegen, wie nachfolgender Code zeigt.

(Update 26.08.06: Sie können mit diesem Beispiel auch Netzwerkdrucker als Standard-Drucker festlegen!)

' Standard-Drucker systemweit festlegen
Public Function fSet_DefaultPrinter( _
  ByVal sPrinterName As String) As Boolean
 
  Dim sComputerName As String
  Dim oWMI As Object
  Dim oPrinter As Object
  Dim colInstalledPrinters As Variant
 
  ' Fehlerbehandlung aktivieren
  On Error GoTo ErrHandler
 
  ' lokaler Rechner
  sComputerName = "."
 
  ' Druckernamen bei Netzwerkdruckern ggf. modifizieren
  ' ===================================================
  ' da der Backslash in der Registry doppelt gesetzt werden muß
  ' (Unterscheidung zu Pfadangaben innerhalb der Registry!),
  ' müssen wir hier den Druckernamen anpassen, um den Drucker
  ' zu "finden"
  sPrinterName = Replace(sPrinterName, "\", "\\")
 
  ' WMI-Objekt erstellen
  Set oWMI = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & _
    sComputerName & "\root\cimv2")
 
  ' WMI-Abfrage: alle Drucker mit dem
  ' einer bestimmten Bezeichnung selektieren
  Set colInstalledPrinters = oWMI.ExecQuery _
    ("SELECT * FROM Win32_Printer WHERE Name = '" & sPrinterName & "'")
 
  ' Jetzt den Drucker als Standard-Drucker festlegen
  For Each oPrinter In colInstalledPrinters
    oPrinter.SetDefaultPrinter
  Next
 
  fSet_DefaultPrinter = True
  Exit Function
 
ErrHandler:
  fSet_DefaultPrinter = False
End Function

Die Funktion fSet_DefaultPrinter erwartet als Parameter die Bezeichnung des neuen Standard-Druckers.

Beispiel:
Es sollen alle verfügbaren Drucker in einer ComboBox angezeigt werden. Per CommandButton soll der aktuell ausgewählte Drucker dann systemweit als neuer Standard-Drucker festgelegt werden.

Private Sub Form_Load()
  ' ComboBox: alle Drucker auflisten
  Dim oPrinter As Variant
  For Each oPrinter In Printers
    Combo1.AddItem oPrinter.DeviceName
  Next 
  ShowDefaultPrinter
End Sub
Private Sub ShowDefaultPrinter()
  Dim i As Long
 
  ' Default-Printer in der Titelzeile der Form anzeigen
  Me.Caption = Printer.DeviceName
 
  ' In der Combo-Box auf den Default-Printer positionieren
  For i = 0 To Combo1.ListCount
    If Combo1.List(i) = Printer.DeviceName Then
      Combo1.ListIndex = i
      Exit For
     End If
  Next i
End Sub
Private Sub Command1_Click()
  ' aktuell ausgewählten Drucker systemweit als 
  ' neuen Standard-Drucker festlegen
  If fSet_DefaultPrinter(Combo1.Text) Then
    ShowDefaultPrinter
    MsgBox Combo1.Text & " ist der neue Standard-Drucker!"
  Else
    MsgBox "Konnte " & Combo1.Text & " nicht als " & _
      "neuen Standard-Drucker festlegen."
  End If
End Sub

Dieser Tipp wurde bereits 33.277 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel