Treibername

  • Hallo,

    ich habe mal wieder eine Frage.

    Ich bastele an einem Script um einen Drucker mit AutoIt zu installieren.

    Das geht mit dem Befehl:

    Spoiler anzeigen


    $PortName = "WLAN-Router"

    $DruckerName = "HP LaserJet 1320"

    $DruckerTreiber = "C:\WLAN-Drucker\Programm\HP LaserJet 1320 Treiber\hpc1320u.inf"

    $DruckerTreiberName = "hp LaserJet 1320 PCL 6"

    RunWait('rundll32.exe printui.dll,PrintUIEntry /if /b "' & $DruckerName & '" /f "' & $DruckerTreiber & '" /r "' & $PortName & _ '" /m "' & $DruckerTreiberName & '"/z')

    ganz gut.

    Nur möchte ich das so machen, dass ich diesen Befehl auch für mehrere Druckermodelle verwenden kann.

    Nur dafür muss ich auch den Treibernamen des jeweiligen Druckermodells aus der .inf-Datei auslesen und in die Variable $DruckerTreiberName angeben.

    Da ich möglichst viel automatisch mit AutoIt erledigen will, möchte ich somit möglichst auch den Treibernamen automatisch aus der angegeben .inf-Datei ermitteln.

    Nur dafür fällt mir keine Lösung ein, da der Treibername anscheinend nicht immer an der selben Position in der .inf-Datei steht.

    Hat dafür einer eine Idee wo man auch immer an den richtigen Treibernamen kommen kann?

    MfG:

    BigRox

  • Nur dafür fällt mir keine Lösung ein, da der Treibername anscheinend nicht immer an der selben Position in der .inf-Datei steht.

    Irgendeine Gemeiamkeit mußt du schon finden, z,B.: "Printername = Modell XY'

    Einmal editiert, zuletzt von autoBert (16. September 2018 um 17:57)

  • Du wirst hier vermutlich nicht darum herum kommen für die entsprechende Treiber einzeln in der Inf Datei zu suchen, und anpassungen dafür im Skript hinzuzufügen.

    Als erstes, sollte beachtet werden das eine Inf Datei eigentlich nichts anders als eine Ini Datei ist.

    Der Treibername ist im Normalfall in der Sektion "Strings" enthalten, dort dann einfach danach suchen.

    Das einzige Problem was Du dabei haben wirst ist, das je nach Hersteller die Variable anders benannt ist. Teilweise auch einfach mal eine andere Inf Datei im Treiber anschauen, beim HP Universal Treiber stehen zb. 3 Inf Dateien zur Installation zur Verfügung. Aber nur in einer findet sich eine entsprechende Sektion und der Treibername.

    Also die einfachste Lösung dürfte sein, für die verwendeten Treiber die Daten auslesen, und entsprechend im Skript danach suchen. Sobald aber ein neuer Drucker hinzukommt, muss dort zuerst die Inf Datei geprüft werden, ob entsprechende Einträge vorhanden sind und nach diesen im Skript schon vorhanden sind.


    Zum Betriag von oh-ha:

    Auch wenn man den Drucker über die Cmdlets der PowerShell installiert, muss zuerst der Treibername ermitteln werden. Daher wird dies leider nichts bringen.