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.281 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. |
sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. 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 TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |