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: 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: 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.255 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. |
||||||||||||||||
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. |