StdinWrite Lotus Notes nfuxup.exe

  • Kann mir jemand helfen; Warum wird das Passwort nicht übergeben.

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Demonstrates the use of StdinWrite()
    #include <Constants.au3>

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

    Local $foo = Run(@ProgramFilesDir & "\" & "notes\nfixup", @UserProfileDir & "\NOTESDATA\", @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
    ; Write string to be sorted to child sort.exe's STDIN
    ;StdinWrite("password" & @CRLF)
    _ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : StdinWrite($foo,"password" & @CRLF) = ' & StdinWrite($foo,"password" & @CRLF) & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    ; Calling with no 2nd arg closes stream
    ;StdinWrite($foo)
    _ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : StdinWrite($foo) = ' & StdinWrite($foo) & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

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

    ; Read from child's STDOUT and show
    Local $data
    While True
    $data = StdoutRead($foo)
    If @error Then ExitLoop
    _ConsoleWrite($data) ;### Debug Console
    Sleep(25)
    WEnd

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

    Func _ConsoleWrite($sMsg)
    If Not $sMsg = "" Then
    $sMsg = StringReplace($sMsg, @CRLF, " ")
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sMsg = ' & $sMsg & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    ;_FileWriteLog(@TempDir & "\" & @ScriptName & ".log", $sMsg)
    EndIf
    EndFunc ;==>_ConsoleWrite

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

    Danke

  • Probier mal

    [autoit]

    @CR

    [/autoit]

    anstatt

    [autoit]

    @CRLF

    [/autoit]

    als "Enter" :)

    Da es hier doch einige falsch machen:

    Zitat von einem User dieses Forums

    Die Standard-Standart eines Flamingos ist einbeinig. ;)

  • Wieso schreibst du eigentlich das was ausgegeben wird wieder direkt an das Programm?

    Da es hier doch einige falsch machen:

    Zitat von einem User dieses Forums

    Die Standard-Standart eines Flamingos ist einbeinig. ;)

  • Ich muss es mal später am PC anschauen, bin nämlich mit dem Handy Online und da wird der Code rechts abgeschnitten. Dann kann ich es also gerade nich ganz nachvollziehen.

    Da es hier doch einige falsch machen:

    Zitat von einem User dieses Forums

    Die Standard-Standart eines Flamingos ist einbeinig. ;)

  • Okay, ich hab mir das ganze jetzt nochmal angeschaut und stelle fest, dass du das Passwort ja an keiner Stelle an das Programm sendest 8|

    Ich denke du musst dafür diesen Befehl verwenden:

    [autoit]

    StdinWrite($foo, "password" & @CR)

    [/autoit]

    Da es hier doch einige falsch machen:

    Zitat von einem User dieses Forums

    Die Standard-Standart eines Flamingos ist einbeinig. ;)

  • Und bist du dir sicher, dass das Programm überhaupt gestartet wird? Braucht das nfixup nicht noch ein .exe?
    Und braucht es das Passwort ganz am Anfang?

    Geht es, wenn du mal diesen einfachen Codeblock ausführst?

    [autoit]


    $foo = Run(@ProgramFilesDir & "\" & "notes\nfixup.exe", @UserProfileDir & "\NOTESDATA\", @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD) ; Habe hier mal ein .exe mit eingebaut
    Sleep(5000) ; 5 Sekunden nach Start des Programms warten
    StdinWrite($foo, "password" & @CR) ; Passwort an den STDIN-Stream des Programms senden

    [/autoit]

    Da es hier doch einige falsch machen:

    Zitat von einem User dieses Forums

    Die Standard-Standart eines Flamingos ist einbeinig. ;)

  • Dann bau mal ein Sleep(5000) bei dir ein, vielleicht wird der Befehl einfach zu früh gesendet und das Programm nimmt ihn deshalb nicht auf.

    Da es hier doch einige falsch machen:

    Zitat von einem User dieses Forums

    Die Standard-Standart eines Flamingos ist einbeinig. ;)