Supportnet / Forum / Skripte(PHP,ASP,Perl...)
per VB den Standarddrucker ermitteln
Frage
Hallo
kann mir jemand sagen, wie ich mit VB den Standarddrucker ermitteln kann?
Und kann ich auch per VB einen anderen Drucker zum Standarddrucker machen, also ohne dass ich über die Druckereigenschaften gehe?
Danke für eure Hilfe
Frank
Antwort 1 von Wony
Hallo,
auf folgender Internetseite http://www.scriptinternals.de/content/4-Anwendungen/drucker/standard/stdprn0.htm findest du ein fertiges Script (VB-Script)zum Thema Standarddrucker festlegen.
Das Script listet alle Drucker im System auf und ermöglicht dann, einen neuen Standarddrucker festzulegen.
Weitere Infos findest du unter
WWW.WININFO.DE und WWW.SCRIPTINTERNALS.DE
Gruß Wony
auf folgender Internetseite http://www.scriptinternals.de/content/4-Anwendungen/drucker/standard/stdprn0.htm findest du ein fertiges Script (VB-Script)zum Thema Standarddrucker festlegen.
Das Script listet alle Drucker im System auf und ermöglicht dann, einen neuen Standarddrucker festzulegen.
Weitere Infos findest du unter
WWW.WININFO.DE und WWW.SCRIPTINTERNALS.DE
Gruß Wony
Antwort 2 von struppi
Hallo,
Da wie hier im VBS und JS Forum sind denke ich mal das Du VBS meinst und nicht VB. In VB gibt es das Printer-Object. Damit kannst Du alles machen.
Für VBS habe ich mal eine kleine Demo einiger Varianten zusammengestellt.
Der Registryzugriff ist ein Beispiel für WIN98SE. Muß bei anderem BS angepasst werden.
gruß struppi
Da wie hier im VBS und JS Forum sind denke ich mal das Du VBS meinst und nicht VB. In VB gibt es das Printer-Object. Damit kannst Du alles machen.
Für VBS habe ich mal eine kleine Demo einiger Varianten zusammengestellt.
Der Registryzugriff ist ein Beispiel für WIN98SE. Muß bei anderem BS angepasst werden.
on error resume next
Bsp = ""
Msgbox Printerliste
Function Printerliste()
Set shell = CreateObject("Shell.Application")
Set folder = shell.NameSpace(4)
Printerliste = "Das sind alle verfügbaren Drucker! Bitte genaue Schreibweise beachten!" & vbcrlf
For Each item In folder.Items
If item.Name <> "Neuer Drucker" Then
Printerliste = Printerliste & item.Name & vbcrlf
Bsp = item.Name
End If
Next
End Function
Printerwechsel Inputbox("Welcher Drucker soll Standarddrucker werden?" & vbcrlf _
& Printerliste,vbQuestion,Bsp)
Function Printerwechsel(Printer)
Set shell = CreateObject("Shell.Application")
Set folder = shell.NameSpace(4)
For Each item In folder.Items
If item.Name = Printer Then item.InvokeVerb "Als S&tandard definieren"
Next
End Function
Msgbox "Aus der Registry ausgelesener Standarddrucker : " & StandardPrinter
Function StandardPrinter()
Set wshshell = CreateObject("Wscript.Shell")
key = "HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers\Default"
StandardAlt = wshshell.RegRead(key)
StandardPrinter = StandardAlt
End Function
Msgbox "Infos des Networkobjectes: " & vbcrlf & NetworkDrucker
Function NetworkDrucker()
Set Netzwerk = CreateObject("Wscript.Network")
Antwort = Msgbox("Soll der Standarddrucker mal mit dem Networkobject gewechselt werden?",vbyesNo+VBQuestion)
if Antwort = vbyes then Netzwerk.setDefaultPrinter Inputbox("Printer-Namen eingeben! " & Printerliste,vbQuestion,Bsp)
Domaen = Netzwerk.UserDomain
UName = Netzwerk.UserName
CName = Netzwerk.ComputerName
Set ndcollection = Netzwerk.EnumPrinterConnections
For Each nd In ndcollection
ndListe = ndListe & nd & Chr(13) & Chr(10)
Next
Info = ""
Info = Info & "User-Domain: " & Domaen & Chr(13) & Chr(10) _
& "User-Name: " & UName & Chr(13) & Chr(10) _
& "Computer-Name: " & CName & Chr(13) & Chr(10) _
& Chr(13) & Chr(10) & Chr(13) & Chr(10) _
& "Permanente Netzwerk_Drucker Verbindungen:" & Chr(13) & Chr(10) _
& Chr(13) & Chr(10) _
& ndListe & Chr(13) & Chr(10)
NetworkDrucker = Info
End Function
gruß struppi
Antwort 3 von struppi
Hallo,
Da wie hier im VBS und JS Forum sind denke ich mal das Du VBS meinst und nicht VB. In VB gibt es das Printer-Object. Damit kannst Du alles machen.
Für VBS habe ich mal eine kleine Demo einiger Varianten zusammengestellt.
Der Registryzugriff ist ein Beispiel für WIN98SE. Muß bei anderem BS angepasst werden.
gruß struppi
Da wie hier im VBS und JS Forum sind denke ich mal das Du VBS meinst und nicht VB. In VB gibt es das Printer-Object. Damit kannst Du alles machen.
Für VBS habe ich mal eine kleine Demo einiger Varianten zusammengestellt.
Der Registryzugriff ist ein Beispiel für WIN98SE. Muß bei anderem BS angepasst werden.
on error resume next
Bsp = ""
Msgbox Printerliste
Function Printerliste()
Set shell = CreateObject("Shell.Application")
Set folder = shell.NameSpace(4)
Printerliste = "Das sind alle verfügbaren Drucker! Bitte genaue Schreibweise beachten!" & vbcrlf
For Each item In folder.Items
If item.Name <> "Neuer Drucker" Then
Printerliste = Printerliste & item.Name & vbcrlf
Bsp = item.Name
End If
Next
End Function
Printerwechsel Inputbox("Welcher Drucker soll Standarddrucker werden?" & vbcrlf _
& Printerliste,vbQuestion,Bsp)
Function Printerwechsel(Printer)
Set shell = CreateObject("Shell.Application")
Set folder = shell.NameSpace(4)
For Each item In folder.Items
If item.Name = Printer Then item.InvokeVerb "Als S&tandard definieren"
Next
End Function
Msgbox "Aus der Registry ausgelesener Standarddrucker : " & StandardPrinter
Function StandardPrinter()
Set wshshell = CreateObject("Wscript.Shell")
key = "HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers\Default"
StandardAlt = wshshell.RegRead(key)
StandardPrinter = StandardAlt
End Function
Msgbox "Infos des Networkobjectes: " & vbcrlf & NetworkDrucker
Function NetworkDrucker()
Set Netzwerk = CreateObject("Wscript.Network")
Antwort = Msgbox("Soll der Standarddrucker mal mit dem Networkobject gewechselt werden?",vbyesNo+VBQuestion)
if Antwort = vbyes then Netzwerk.setDefaultPrinter Inputbox("Printer-Namen eingeben! " & Printerliste,vbQuestion,Bsp)
Domaen = Netzwerk.UserDomain
UName = Netzwerk.UserName
CName = Netzwerk.ComputerName
Set ndcollection = Netzwerk.EnumPrinterConnections
For Each nd In ndcollection
ndListe = ndListe & nd & Chr(13) & Chr(10)
Next
Info = ""
Info = Info & "User-Domain: " & Domaen & Chr(13) & Chr(10) _
& "User-Name: " & UName & Chr(13) & Chr(10) _
& "Computer-Name: " & CName & Chr(13) & Chr(10) _
& Chr(13) & Chr(10) & Chr(13) & Chr(10) _
& "Permanente Netzwerk_Drucker Verbindungen:" & Chr(13) & Chr(10) _
& Chr(13) & Chr(10) _
& ndListe & Chr(13) & Chr(10)
NetworkDrucker = Info
End Function
gruß struppi
Antwort 4 von FrankP
vielen Dank an alle, die hier geantwortet haben. Hat mir weiter geholfen.
Gruß
Frank
Gruß
Frank

