1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. MrIcemanF14

Beiträge von MrIcemanF14

  • Merkwürdige Rückgabe beim Auslesen von Combobox einträgen

    • MrIcemanF14
    • 12. Februar 2014 um 09:20
    Zitat von gmmg

    du kannst auch die drucker doppelt anlegen, musst dann nur im druckermenü die eigenschaften anders definieren ...

    Da bin ich aber wieder bei einem hohen administrativen Aufwand, wenn das Script bei allen Kollegen funktionieren soll. Da müsste man schon fast ein extra Script schreiben, dass die Einrichtung der Drucker überprüft bzw. durchführt. Wie es aussieht kann auch der Foxit Reader keine "detaillierten" Optionen über die Kommandozeile verarbeiten.

    Bleibt also der Weg über die GUI mit dem Problem der merkwürdigen Zeichen.

    Zitat von gmmg

    dateien in ein array einlesen und automatisch an die pdfinfo.exe als parameter übergeben! kann die pdfinfo das?
    hab es eben mit pdftk.exe gemacht, da kann man einen dumperstellen ...


    ... das kann die pdfinfo auch:

    [autoit]


    Local $iPID = Run(@ScriptDir & '\Resources\pdfinfo.exe "' & $pdfFile & '"', "", @SW_HIDE, $STDOUT_CHILD)

    [/autoit][autoit][/autoit][autoit]

    ; Wait until the process has closed using the PID returned by Run.
    ProcessWaitClose($iPID)

    [/autoit][autoit][/autoit][autoit]

    ; Read the Stdout stream of the PID returned by Run. This can also be done in a while loop. Look at the example for StderrRead.
    Local $sOutput = StdoutRead($iPID)

    [/autoit]

    Gruß
    Stefan

  • Merkwürdige Rückgabe beim Auslesen von Combobox einträgen

    • MrIcemanF14
    • 11. Februar 2014 um 14:43
    Zitat von gmmg

    woher weißt du denn, welche datei auf welchen drucker gesendet werden sol, wie liest du das format aus ?

    Der Nutzer wählt beim Start des Scriptes ein Excel-File aus in dem eine Liste an Zeichnungsnummern steht. Aus dieser Nummer bastel ich mir den Dateinamen zusammen. Mit Hilfe einer pdfinfo.exe lese ich das Seitenformat aus und wähle danach den Drucker aus.

    Das muss ich mir mal in Ruhe anschauen. Auf den ersten Blick sehe ich keine Möglichkeiten die Optionen für den Druck einzustellen (Skalierung, Hoch-/Querformat, etc.). Aber da gibt es sicher auch möglichkeiten. Der Druckauftrag im Hintergrund wäre echt ne elegante Lösung. Danke für den Tipp.

    Gruß
    Stefan

  • Merkwürdige Rückgabe beim Auslesen von Combobox einträgen

    • MrIcemanF14
    • 11. Februar 2014 um 12:08
    Zitat von gmmg

    oder möchtest du einen druck komplett automatisieren? das geht dann auch über kommandozeile ...

    Wie würde das prinzipiell funktionieren? Hatte auch schon ein Kommandozeilentool gefunden. Da kostet die Lizenz allerdings 200€.

  • Merkwürdige Rückgabe beim Auslesen von Combobox einträgen

    • MrIcemanF14
    • 11. Februar 2014 um 12:06

    Hallo,

    es geht um den Ausdruck von sehr vielen PDF-Dateien. Diese sollen je nach Papier-Format auf zwei verschiedenen Druckern gedruckt werden (A4 & A3 auf einem Laser, >=A2 auf einem Plotter). Das Script soll auf allen Rechnern in unserer Firma lauffähig sein. Da die Drucker aber nicht überall gleich benannt sind, sollen die Drucker beim Starten des Scriptes vom Benutzer ausgewählt werden. Auf Basis dieser Auswahl wird dann jedesmal im Drucken-Dialog der entsprechende Drucker gewählt.

    Leider scheint die Auswahl des Druckers mit diesem Befehl nicht zu funktionieren, da die Druckernamen verschlüsselt/codiert sind.

    [autoit]

    ControlCommand ("Drucken","","[CLASS:ComboBox; INSTANCE:1]","SelectString", $printerA4)

    [/autoit]

    Gruß
    Stefan

  • Merkwürdige Rückgabe beim Auslesen von Combobox einträgen

    • MrIcemanF14
    • 11. Februar 2014 um 07:18

    Welche Hintergrundinformationen sind noch wichtig?

    Das Drucken-Dialogfeld rufe ich über STRG+P im "Adobe Reader XI" auf.

    Die Vorauswahl des Druckers durch den Nutzer erfolgt wie folgt:

    [autoit]


    Func GetPrinterList()
    Local $arrPrinterList[1] ;doubt there are more than 30 printers

    [/autoit][autoit][/autoit][autoit]

    For $i = 1 To 1000
    Local $reg = RegEnumVal( "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices", $i)
    If @error = -1 Then ExitLoop
    _ArrayAdd($arrPrinterList, $reg)
    Next

    [/autoit][autoit][/autoit][autoit]

    _ArrayDelete($arrPrinterList, 0)

    [/autoit][autoit][/autoit][autoit]

    Return $arrPrinterList
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    ; COMBO
    Local $printers = GetPrinterList()

    [/autoit][autoit][/autoit][autoit]

    GUICtrlCreateLabel("Drucker A4 + A3", 10, 120, 90, 20)
    Global $comboA4 = GUICtrlCreateCombo("", 140, 120, 200, 20)
    GuiCtrlSetData($comboA4, "|" & _ArrayToString($printers))

    [/autoit][autoit][/autoit][autoit][/autoit]

    Wenn es dann zum Druckdialog kommt soll der am Anfang gewählte Drucker ausgewählt werden:

    [autoit]


    Send("{CTRLDOWN}p{CTRLUP}")

    [/autoit][autoit][/autoit][autoit]

    Sleep(300)

    [/autoit][autoit][/autoit][autoit]

    _WinWaitActivate("Drucken","")

    [/autoit][autoit][/autoit][autoit]

    Sleep(300)

    ;Message Box zum debugen:
    ;-----------------------------------
    $Combo = ControlGetHandle ( "Drucken", "", "[CLASS:ComboBox; INSTANCE:1]" )
    $sPrinter = _GUICtrlComboBox_GetList($Combo)
    MsgBox(0,"Printer",$sPrinter)
    ;-----------------------------------

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    If ($format = "A4" OR $format = "A3") Then
    ControlCommand ("Drucken","","[CLASS:ComboBox; INSTANCE:1]","SelectString", $printerA4)
    Else
    ControlCommand ("Drucken","","[CLASS:ComboBox; INSTANCE:1]","SelectString", $printerA2)
    EndIf

    [/autoit][autoit][/autoit][autoit]

    Sleep(500)

    [/autoit]
  • Merkwürdige Rückgabe beim Auslesen von Combobox einträgen

    • MrIcemanF14
    • 5. Februar 2014 um 10:53

    Hallo Zusammen,

    Ich habe ein Problem mit einer Combobox in einem Drucken-Dialog. Ich gehe wie folgt vor: Wenn das Skript gestartet wird, lese ich alle installierten Drucker aus und biete diese zur Auswahl an. Im weiteren Verlauf des Scriptes komme ich zu einem Drucken-Dialog. Hier will ich den zuvor gewählten Drucker selektieren.

    [autoit]


    ControlCommand ("Drucken","","[CLASS:ComboBox; INSTANCE:1]","SelectString", $printerA4)

    [/autoit]


    Da die Auswahl nicht funktioniert, habe ich mir alle Items ausgeben lassen:

    [autoit]

    $Combo = ControlGetHandle ( "Drucken", "", "[CLASS:ComboBox; INSTANCE:1]" )
    $sPrinter = _GUICtrlComboBox_GetList($Combo)
    MsgBox(0,"Printer",$sPrinter)

    [/autoit]

    Die Messagebox zeigt dann, dass in der Combobox merkwürdige Zeichen verwendet werden (siehe Anhang). Wie komme ich an den richtigen Listeneintrag? Vielleicht ist das ein Zeichensatzproblem? UTF-( oder sowas?

    Vielen Dank für eure Hilfe.

    Gruß
    Stefan

    Bilder

    • post-80317-0-64614400-1390569882.jpg
      • 10,01 kB
      • 491 × 155

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™