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. Maxxer

Beiträge von Maxxer

  • Verfügbare Papierfachcodes von Drucker ermitteln

    • Maxxer
    • 11. März 2014 um 16:00

    Danke für das Code Beispiel, das veranschaulicht es sehr gut. An die Fachcodes kommt man damit aber auch nicht ran.
    Evtl. hab ich mich aber auch nicht deutlich genug ausgedrückt. Über Word möcht ich das nicht lösen. Word war nur als Bsp. gedacht, weil Word den Fachcode für jeden der bisher getesteten Drucker und Fächer richtig auslesen konnte. Ich weiß nur noch nicht, woher Word sich die Info holt.
    Wie aus deinem Bsp. zu sehen ist, möchte ich der

    [autoit]

    Global Const $wdPrinterDefaultBin = 0 ; 0 = Standardfach

    [/autoit]


    den Fachcodewert z.b. 259

    [autoit]

    Global Const $wdPrinterDefaultBin = 259 ; 259 = Fach 1

    [/autoit]


    zuweisen.

  • Verfügbare Papierfachcodes von Drucker ermitteln

    • Maxxer
    • 11. März 2014 um 10:25

    Hallo zusammen,

    ich verwende folgenden Code um an die Namen bzw. die Bezeichnungen der Papierfächer für den Standarddrucker zu kommen.

    Spoiler anzeigen
    [autoit]


    Const $DC_BINS = 6
    Const $DC_BINNAMES = 12
    Dim $BinNameList

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

    $strComputer = "."
    $objWMIService = ObjGet ("winmgmts:\" & $strComputer & "\root\cimv2")
    $colInstalledPrinters = $objWMIService.ExecQuery ("Select * From Win32_Printer Where Default = True")
    For $objPrinter In $colInstalledPrinters
    $result = DllCall("winspool.drv", "long", "DeviceCapabilitiesA", "str", $objPrinter.Name, "str", $objPrinter.PortName, "int", $DC_BINS, "str", $BinNameList, "long", 0)
    $s_struct = ""
    For $i = 1 To $result[0]
    $s_struct = $s_struct & "char[24];"
    Next
    $s_struct = StringTrimRight($s_struct, 1)
    $struct = DllStructCreate($s_struct)
    $result2 = DllCall("winspool.drv", "long", "DeviceCapabilitiesA", "str", $objPrinter.Name, "str", $objPrinter.PortName, "int", $DC_BINNAMES, "ptr", DllStructGetPtr($struct), "long", 0)
    For $i = 1 To $result[0]
    ;~ MsgBox(0, "Papierfach", DllStructGetData($struct, $i))
    ConsoleWrite(DllStructGetData($struct, $i) & @CRLF)
    Next
    $struct = 0
    Next

    [/autoit]


    Zusätzlich hätte ich noch gerne den Fachcode ermittelt, wie es zum bsp. Word über "Seite einrichten" bei der Makroaufzeichnung generiert.
    Als Bsp.von einem HP LJ4250
    15 Automatisch auswählen
    262 Drucker autom. Auswahl
    258 Man. Zufuhr in Fach 1
    259 Fach 1
    260 Fach 2
    261 Fach 3
    262 Fach 4

    Kennt jemand eine Möglichkeit diese Fachcodes zu ermitteln?

    MfG Maxxer

  • SMTP Kommunikation protokollieren

    • Maxxer
    • 27. Mai 2012 um 10:56

    Hallo zusammen,

    ich habe ein wenig mit dieser Funktion experimentiert, die an sich sehr gut funktioniert.

    Spoiler anzeigen
    [autoit]

    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
    SendEmail("sender@server.intern", "empfaenger@server.intern", "Testmail", "Hallo, das ist eine Testmail")
    Func SendEmail($e_Sender, $e_Recipient, $e_Subject, $e_Text)
    $objMessage = ObjCreate ("CDO.Message")
    With $objMessage
    .Subject = $e_Subject
    .Sender = $e_Sender
    .From = $e_Sender
    .To = $e_Recipient
    .TextBody = $e_Text
    EndWith
    With $objMessage.Configuration.Fields
    .Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "w2k8.server.intern"
    .Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
    .Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "auth"
    .Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "pass"
    .Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    .Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
    .Update
    EndWith
    $objMessage.Send
    Return
    EndFunc

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

    Func MyErrFunc()
    $HexNumber=hex($oMyError.number,8)
    Msgbox(0,"AutoItCOM Test","We intercepted a COM Error !" & @CRLF & @CRLF & _
    "err.description is: " & @TAB & $oMyError.description & @CRLF & _
    "err.number is: " & @TAB & $HexNumber & @CRLF & _
    "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF _
    )
    SetError(1)
    Endfunc

    [/autoit]


    Nur die Fehlerrückgabe passt nicht immer. Wenn man z.B. bei der SMTP Authentifizierung einen falschen Anmeldenamen/Passwort angibt,
    kommt die Meldung "Die Serverantwort lautet not available". Der Exchange protokolliert aber "535 5.7.3 Authentication unsuccessful".

    Meine Frage wäre: Gibt es eine Möglichkeit, die SMTP Kommunikation des Scrpts genauso zu protokollieren, wie es der Exchange auch macht?

    Spoiler anzeigen


    >,"220 W2K8.server.intern Microsoft ESMTP MAIL Service ready at Sun, 27 May 2012 10:35:22 +0200",
    <,EHLO XPPC1,
    >,250-W2K8.server.intern Hello [192.168.1.50],
    >,250-SIZE,
    >,250-PIPELINING,
    >,250-DSN,
    >,250-ENHANCEDSTATUSCODES,
    >,250-STARTTLS,
    >,250-X-ANONYMOUSTLS,
    >,250-AUTH NTLM LOGIN,
    >,250-X-EXPS GSSAPI NTLM,
    >,250-8BITMIME,
    >,250-BINARYMIME,
    >,250-CHUNKING,
    >,250-XEXCH50,
    >,250 XRDST,
    <,AUTH LOGIN,
    >,334 <authentication response>,
    >,334 <authentication response>,
    *,,Inbound AUTH LOGIN failed because of LogonDenied
    >,535 5.7.3 Authentication unsuccessful,
    -,,Remote


    MfG Maxxer

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™