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 17.337 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (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. |
Neu! 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 Dietrich Herrmann Einsatz einer DimmingForm Es wird eine Form vorgestellt, mit deren Hilfe man den gesamten Bildschirm auf verschiedene Arten mit transparenter Farbe überdecken und nur eine eigene Form im Vordergrund zeigen kann. sevZIP30 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. |
||||||||||||||||
|
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. |
|||||||||||||||||



Standard-Drucker systemweit festlegen (WMI)


