makuro
Goto Top

Rundll32 Drucker auslesen in einer Datei

Hallo Leute,

ich habe mal eine frage.

Vielleicht kennt sicht einer da besser mit aus.

Mit dem Befehl

rundll32 printui.dll,PrintUIEntry /ge

kann ich ja alle Drucker auslesen ich dich installiert habe.

Kann ich diese ausgelesnen Drucker aus in einer dabei schreiben lassen ?

Weil:

rundll32 printui.dll,PrintUIEntry /ge /a "C:\druckerT.dat"

das geht leider nicht so face-sad

Oder hat einer von euch eine bessere Idee wie ich die Drucker von einem bestehenden System auslesen kann.

Weil ich müsste im späteren verlauf die Informationen wieder haben um den Standart drucker zu setzen.

Hat der wer eine Idee von euch ?

LG

Makuro

Content-Key: 167537

Url: https://administrator.de/contentid/167537

Printed on: April 24, 2024 at 05:04 o'clock

Member: Skyemugen
Skyemugen Jun 06, 2011 at 12:57:50 (UTC)
Goto Top
Aloha,

funktioniert denn:
rundll32 printui.dll,PrintUIEntry /ge>>"C:\druckerT.dat"
? Kann es nicht testen, bei mir ist die Anzeige eh immer leer *gg*

greetz André
Member: Makuro
Makuro Jun 06, 2011 at 13:01:00 (UTC)
Goto Top
Wenn ich das eingebe kommt bei mir leider nur eine Massage box, wo alle drucker aufgelistet.

Der schreibt mir das nicht in einer datei face-sad

LG

Maku
Member: rsmvv01
rsmvv01 Jun 06, 2011 at 13:21:57 (UTC)
Goto Top
Hi Maku

probiers mal mit der zusätzlichen Option /f und dem gewünschten Dateinamen.....

rundll32 printui.dll,PrintUIEntry /ge /f "c:\temp\printer.txt"

bei mir bleibt die Anzeige auch erst mal leer aber ne leere Ausgabedatei wird erstellt....
Member: Makuro
Makuro Jun 06, 2011 at 13:41:42 (UTC)
Goto Top
Hallo RSMVV01

Das geht super.

Aber der setzt da nicht die Infos vom Standard drcuker oder ?
Member: rsmvv01
rsmvv01 Jun 06, 2011 at 13:53:09 (UTC)
Goto Top
kann ich dir nicht beantworten ... wie gesagt, bei mir bleibt die anzeige leer...

aber mit

rundll32 printui.dll,PrintUIEntry /?

bekommst du die ganzen Optionen gelistet .... vielleicht ist ja was passendes dabei
Member: Makuro
Makuro Jun 06, 2011 at 14:14:54 (UTC)
Goto Top
Leider nein nicht das was ich brauche face-sad

Vielleicht ja ja einer noch ne idee.

Das Problem ich muss den Standart drucker so bestimmen und beim nächten reboot wieder neu setzen.

Und so langsamm bekomme ich eine .....
Member: rsmvv01
rsmvv01 Jun 06, 2011 at 14:29:00 (UTC)
Goto Top
Hi Maku,

angeblich soll so was funktionieren, wenn man Adminrechte hat face-wink

wmic printer where "Default = 'True'" get Name
Member: Makuro
Makuro Jun 06, 2011 at 14:39:16 (UTC)
Goto Top
Ja das ist richt das geht.

Da der User Admin rechte hat.

Nur muss das wieder in eine 2te *.bat rein damit ich nach einem neustart den drucker wieder setzen kann und da komme ich nicht weiter.

Könnte so langsam meinen Rechner gehen die wand hauen.
Member: Makuro
Makuro Jun 06, 2011 at 14:54:46 (UTC)
Goto Top
rundll32 printui.dll,PrintUIEntry /ge /f "c:\temp\printer.txt"

wmic printer where "Default = 'True'" get Name

rundll32 printui.dll,PrintUIEntry /y /n "\\Druckername”


Hab noch mal geschaut man müste die 3 bzw 2 fehle zusammen binden.

Einer eine arnung ?
Member: Biber
Biber Jun 06, 2011 at 16:48:02 (UTC)
Goto Top
[OT]
Zitat von @Makuro:
Wenn ich das eingebe kommt bei mir leider nur eine Massage box, wo alle drucker aufgelistet.
Was heisst hier "leider" ?
Ich wäre dankbar, wenn ich montags eine Massagebox per Knopfdruck ordern könnte....

Grüße
Biber
[/OT]
Member: Jochem
Jochem Jun 07, 2011 at 07:02:39 (UTC)
Goto Top
Moin,

@Biber

[noch mehr OT]
ich wette, daß der "Knopf" ist rot(haarig) sein müßte!
[/ noch mehr OT]

Gruß J face-smile chem
Mitglied: 60730
60730 Jun 09, 2011 at 13:13:29 (UTC)
Goto Top
Moin,.

Zitat von @Makuro:
Hab noch mal geschaut man müste die 3 bzw 2 fehle zusammen binden.

Einer eine arnung ?

  • ich hab noch ne Tube Arnika Heilsalbe hier rumfliegen, damit kann Frau Mann massieren.

Falls du eine andere Sprache beherrscht, könnte man ja evtl. verstehen wo du wolle.
Member: Clijsters
Clijsters Jun 15, 2011 at 21:45:59 (UTC)
Goto Top
[OT]
Das
Wenn ich das eingebe kommt bei mir leider nur eine Massage box, wo alle drucker aufgelistet.
Und vor Allem das
ich hab noch ne Tube Arnika Heilsalbe hier rumfliegen, damit kann Frau Mann massieren.
...
Ich wäre dankbar, wenn ich montags eine Massagebox per Knopfdruck ordern könnte....

sind die einzigen Gründe, warum ich auf diesen Beitrag antworte...[/OT]
Wenn ich mir den Gesprächsverlauf so anschaue, verstehe ich nicht mehr, ob es nun darum geht, Drucker auszulesen, standards zu setzen oder diese Auszulesen...

Setzt den Standarddrucker
Set net = CreateObject("WScript.Network")      
net.SetDefaultPrinter "Genauer Druckername"  

Schreibt diverse Druckerinfos in eine txt...
Datei = "C:\datei.txt"  
Set FSO = CreateObject("Scripting.FileSystemObject")  
Set Ausgabe = FSO.OpenTextFile(Datei, 2, True)

strComputer = "."  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")  
Set colItems = objWMIService.ExecQuery("Select * from Win32_Printer",,48)  

For Each objItem in colItems
	Ausgabe.WriteLine "Druckername: " & objItem.Name  
	Ausgabe.WriteLine "Treibername: " & objItem.DriverName  
	Ausgabe.WriteLine "Druckprozessor: " & objItem.PrintProcessor  
	Ausgabe.WriteLine "PortName: " & objItem.PortName  
Next

Das spuckt der WMI-Creator dazu aus (Falls diverse andere Informationen benötigt werden sollen):
Availability: objItem.Availability
    AveragePagesPerMinute: objItem.AveragePagesPerMinute
    Caption: objItem.Caption
    Comment: objItem.Comment
    ConfigManagerErrorCode: objItem.ConfigManagerErrorCode
    ConfigManagerUserConfig: objItem.ConfigManagerUserConfig
    CreationClassName: objItem.CreationClassName
    CurrentCharSet: objItem.CurrentCharSet
    CurrentLanguage: objItem.CurrentLanguage
    CurrentMimeType: objItem.CurrentMimeType
    CurrentNaturalLanguage: objItem.CurrentNaturalLanguage
    CurrentPaperType: objItem.CurrentPaperType
    Default: objItem.Default
    DefaultCopies: objItem.DefaultCopies
    DefaultLanguage: objItem.DefaultLanguage
    DefaultMimeType: objItem.DefaultMimeType
    DefaultNumberUp: objItem.DefaultNumberUp
    DefaultPaperType: objItem.DefaultPaperType
    DefaultPriority: objItem.DefaultPriority
    Description: objItem.Description
    DetectedErrorState: objItem.DetectedErrorState
    DeviceID: objItem.DeviceID
    Direct: objItem.Direct
    DoCompleteFirst: objItem.DoCompleteFirst
    DriverName: objItem.DriverName
    EnableBIDI: objItem.EnableBIDI
    EnableDevQueryPrint: objItem.EnableDevQueryPrint
    ErrorCleared: objItem.ErrorCleared
    ErrorDescription: objItem.ErrorDescription
    ExtendedDetectedErrorState: objItem.ExtendedDetectedErrorState
    ExtendedPrinterStatus: objItem.ExtendedPrinterStatus
    Hidden: objItem.Hidden
    HorizontalResolution: objItem.HorizontalResolution
    InstallDate: objItem.InstallDate
    JobCountSinceLastReset: objItem.JobCountSinceLastReset
    KeepPrintedJobs: objItem.KeepPrintedJobs
    LastErrorCode: objItem.LastErrorCode
    Local: objItem.Local
    Location: objItem.Location
    MarkingTechnology: objItem.MarkingTechnology
    MaxCopies: objItem.MaxCopies
    MaxNumberUp: objItem.MaxNumberUp
    MaxSizeSupported: objItem.MaxSizeSupported
    Name: objItem.Name
    Network: objItem.Network
    Parameters: objItem.Parameters
    PNPDeviceID: objItem.PNPDeviceID
    PortName: objItem.PortName
    PowerManagementSupported: objItem.PowerManagementSupported
    PrinterState: objItem.PrinterState
    PrinterStatus: objItem.PrinterStatus
    PrintJobDataType: objItem.PrintJobDataType
    PrintProcessor: objItem.PrintProcessor
    Priority: objItem.Priority
    Published: objItem.Published
    Queued: objItem.Queued
    RawOnly: objItem.RawOnly
    SeparatorFile: objItem.SeparatorFile
    ServerName: objItem.ServerName
    Shared: objItem.Shared
    ShareName: objItem.ShareName
    SpoolEnabled: objItem.SpoolEnabled
    StartTime: objItem.StartTime
    Status: objItem.Status
    StatusInfo: objItem.StatusInfo
    SystemCreationClassName: objItem.SystemCreationClassName
    SystemName: objItem.SystemName
    TimeOfLastReset: objItem.TimeOfLastReset
    UntilTime: objItem.UntilTime
    VerticalResolution: objItem.VerticalResolution
    WorkOffline: objItem.WorkOffline

[ÜberOT]
Mit VbScript kannst du auch das o.g. Fenster öffnen, mit Sendkeys den Inhalt markieren, kopieren und in ein Notepad-Fenster einfügen.
Den Inhalt des Fenster kannst du dann in einer txt abspeichern.

Das könnte dann ungefähr so aussehen:
On Error Resume Next

set wshshell = createobject("wscript.shell")  

wshshell.run "rundll32 printui.dll,PrintUIEntry /ge"  
wscript.sleep 500
wshshell.AppActivate "Benuteroberfläche"  
wscript.sleep 500
wshshell.sendkeys "(^A)"  
wshshell.sendkeys "(^C)"  

wshshell.run "Notepad"  
wshshell.Appactivate "Notepad"  
wscript.sleep 500 ' Übrigens, damit der User auch sieht, was passiert...  
wshshell.sendkeys "(^V)"  
wscript.sleep 500
wshshell.sendkeys "(%D)"  
wscript.sleep 200
wshshell.sendkeys "B"  
wscript.sleep 400
wshshell.sendkeys "j"  
wscript.sleep 400
wshshell.sendkeys "C:\asd.txt"  
wshshell.sendkeys "{ENTER}"  
wscript.sleep 200

'Das Fenster bleibt offen, da der User ja auch sehen soll, was passiert...  
[/ÜberOT]