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

Beiträge von Thomasb

  • MSGBOX von externem Programm auslesen

    • Thomasb
    • 14. Juli 2007 um 19:32

    hi,

    ne es kann plötzlich kommen, dann muss ich ein SydowAdresse eintragen bei dem Debitor.

    Thomas

  • MSGBOX von externem Programm auslesen

    • Thomasb
    • 14. Juli 2007 um 18:28

    hi,

    ja das war ja nur ein Versuch. ich habe es so gemacht dann kommt 1 raus

    [autoit]

    While 1
    $debi = "******"
    $text = WinGetText("Microsoft Business Solutions-Navision","In Debitor D10035 fehlt die E-Mail-Adresse")
    If Not WinActivate($text) Then
    WinWaitClose("Microsoft Business Solutions-Navision","Drucke...")
    Else
    MsgBox(0,"",StringRegExp($text, "(?i)Debitor(.*?)(?i)fehlt",1) )

    ExitLoop

    EndIf

    WEnd

    [/autoit]

    was ich noch nicht geschaft habe ist das die Nummer D10035 als Variable funzt und dementsprechend ausgegeben wird.

    thomas

  • MSGBOX von externem Programm auslesen

    • Thomasb
    • 14. Juli 2007 um 17:55

    hi,

    leider hast du nicht richtig gelesen. dieser Teil funzt. erweitere den Teil

    [autoit]

    $text =("In Debitor D10000 fehlt die E-Mail-Adresse")

    [/autoit]

    um

    [autoit]

    $text =WinGetTExt("In Debitor D10000 fehlt die E-Mail-Adresse")

    [/autoit]

    und schaue was bei dir geschieht.
    Nach langem üben kommt bei mir momentan 1 raus.

    mfg Thomas

  • MSGBOX von externem Programm auslesen

    • Thomasb
    • 14. Juli 2007 um 15:24

    hi Bernd,

    ok geändert wird jetzt erkannt. Leider aber nicht mit dem Erfolg den ich erhoft habe.

    Ich habe diesen Teil zum Testen der alles ordentlich zurück gibt.

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <array.au3>

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

    $text =("In Debitor D10000 fehlt die E-Mail-Adresse"); die quelle $text ist der ist-zustand, also kein anderer input vorhanden
    $array = StringRegExp($text, "(?i)Debitor(.*?)(?i)fehlt",1)
    ConsoleWrite($array & @CRLF)
    MsgBox(64,"",$array[0])

    [/autoit]


    Wenn ich $text um WingetText erweitere bekomme ich einen Fehler.

    C:\Programme\AutoIt3\Include\Strinregexp.au3 (7) : ==> Subscript used with non-Array variable.:
    MsgBox(64,"",$array[0])
    MsgBox(64,"",$array^ ERROR
    Das gleiche geschieht auch in meinem Code. liegt hier ein Fehler?

    Thomas

  • MSGBOX von externem Programm auslesen

    • Thomasb
    • 14. Juli 2007 um 13:50

    hi,
    irgendwie will es mit dem WinGetText nicht klappen. Es wird die MSGBOX bei der Aktivierung nicht erkannt. Ich habe es in meinem Script so eingebaut, das es in einer Schleife liegt, da ich nicht weiß ob diese MSGBOX aitiviert wird. Auch weiß ich nicht bei welchem Debitor.

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    Opt("TrayIconDebug", 1)
    Opt("WinTitleMatchMode", 2)
    Opt("WinSearchChildren", 1)
    Opt("WinSearchChildren", 1)
    Opt("WinDetectHiddenText", 1)
    Opt("WinTextMatchMode", 2)

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

    $navision = @ProgramFilesDir & "\Microsoft Business Solutions-Navision\Client\fin.exe"
    Run($navision)
    WinWaitActive('Anmelden')
    Sleep(1000)
    Send('tester{ENTER}')
    Sleep(500)
    Send('test{ENTER}{ENTER}')
    Sleep(2500)
    Send("!xd"); Aufruf Objektdesinger
    Sleep(900)
    Send("!p")
    Send("{Home}")
    Sleep(2000)
    Send("{Right}")
    Send("{F7}")
    Sleep(2000)
    Send("50032")
    Send("{Enter}")
    Sleep(500)
    Send("!r")
    Send("{Enter}")
    Sleep(5000)
    Send("{UP 3}")
    SleeP(5000)
    ;Send(StringFormat("%02d", @MON - 1)& " / " & @YEAR);wandelt das Datum, damit die Null erhalten bleibt
    Sleep(5000)
    Send("{Enter 2}")
    Sleep(5000)
    ;Send($string[$i])
    Sleep(5000)
    Send("{Enter}")
    Send("{Enter}")
    Sleep(5000)
    Send("{Space}")
    Send("!u")
    Sleep(5000)
    send("{TAB 7}{Enter}")
    If FileExists("C:\Thomas\EVN\bat\NaviDruckBLAT.BAT")Then
    Send("{Down}{Space}")
    sleep(500)
    Send("{Enter}")
    Else
    Send("{Enter}")
    EndIf
    While 1
    $debi = "D*"
    $text = WinGetText("Microsoft Business Solutions-Navision","In Debitor "& $debi & "fehlt die E-")
    If WinActivate ($text) Then
    $suchbegriff = _StringBetween($text, 'Debitor ', ' fehlt', 1)
    If IsArray($suchbegriff) Then MsgBox(0, 'gefunden', $text)
    EndIf

    WEnd
    WinWaitClose("Microsoft Business Solutions-Navision","Drucke...")

    [/autoit]


    Habe mal den gesamten Code eingestellt. Wo liegt mein Fehler?

    MFg Thomas

  • Letzter Tag des Monats

    • Thomasb
    • 14. Juli 2007 um 10:12

    hi,

    kleine ursache große wirkung ok es geht danke euch beiden.

    thomas

  • Letzter Tag des Monats

    • Thomasb
    • 14. Juli 2007 um 09:45

    hi ,

    nicht ganz.was ich erreichen will ist das wenn heute (14.07.07) dann letzte Tag des Juni (30.06.07) das geht ja. was nicht funzt ist wenn heute(ein tag im januar) dann der letzte tag des dezember des vorjahres. dann gibt meine func 00.00.2006 aus. das würde ich gerne korrigieren.
    Bei deiner func wird wenn ich das richtig gesehen habe im der 31.12.2006 ausgegeben.

    mfg thomas

  • Letzter Tag des Monats

    • Thomasb
    • 13. Juli 2007 um 16:07

    hi,

    habe da ein kleines Problem mit dem letzten des Monats. Es läuft soweit aber zur Ausgabe des 31.12 des Vorjahres kommt 00.00.Vorjahr. Woran kann es liegen?

    Spoiler anzeigen
    [autoit]

    #include <Date.au3>
    #include <String.au3>

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

    If @Mon = 1 Then
    $iDays = _DateDaysInMonth( @YEAR - 1, StringFormat("%02d", @MON -1 ) )
    $sNewDate = $iDays & "." & StringFormat("%02d", @MON -1) & "." & @YEAR -1
    MsgBox( 4096, "Then", "Datum: " & $sNewDate )
    Else
    $iDays = _DateDaysInMonth( @YEAR ,StringFormat("%02d", @MON - 1) )
    $sNewDate = $iDays & "." & StringFormat("%02d", @MON - 1 ) & "." & @YEAR
    MsgBox( 4096, "Else", "Datum: " & $sNewDate )
    EndIf

    [/autoit]

    Mfg
    Thomas

  • MSGBOX von externem Programm auslesen

    • Thomasb
    • 12. Juli 2007 um 10:28

    hi,

    mit WInGetText kann ich es mir micht vorstellen, da der D* Wert immer ein anderer sein kann. Diesen D* Wert benötige ich dann ja. AutoIT Windows Info gibt das im Anhang befindliche aus.

    Mfg Thomas

  • MSGBOX von externem Programm auslesen

    • Thomasb
    • 11. Juli 2007 um 17:08

    Hallo,

    gibt es eine Möglichkeit MSGBOX's in einem von Autoit gesteuerte Programm auszulesen? Im Anhang ist die MSGBOX die kommt, wenn bei einem Debitor die Mailadresse fehlt. Ich benötige den Teil mit der D* beginnent, um dann dort eine Hilfsmailadresse einzutragen.

    MFG Thomas :rolleyes:

    Bilder

    • Debitor.jpg
      • 10,18 kB
      • 341 × 144
  • SMS Sender - 100%ig kosteloses SMS Senden!

    • Thomasb
    • 28. Juni 2007 um 21:11

    Hi,

    ich wollte auch mal danke zu dem tollen Tool sagen und auch eine Fehlermeldung zeigen mit der ich nicht anfangen kann. Auch kann ich danach nichts mehr machen.

    Thomas

  • hilfe bei e-mail senden in outlook

    • Thomasb
    • 28. Juni 2007 um 14:27

    hi
    eventuell so

    [autoit]

    #include <GUIConstants.au3>
    #include <INet.au3>

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

    ShellExecute("Outlook")
    WinWaitActive("Posteingang - Microsoft Outlook")

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

    ;Simulation neue E_mail erstellen
    Sleep(500)
    Send("!d")
    Send("n")
    Send("m")
    Sleep(500)

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

    ;E-Mail Empfänger Eingabe
    GUICreate("E-Mail Empfänger", 250, 100)
    GUICtrlCreateLabel("Adresse:", 30, 30)
    $input = GUICtrlCreateInput("", 90, 25, 100)
    $btn = GUICtrlCreateButton("OK", 100, 60, 60)
    GUISetState()

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

    $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()
    Select
    Case $msg = $btn
    ExitLoop
    EndSelect
    WEnd
    $adress= GUICtrlRead($input)
    $subject = "Test"
    $body = ""
    _INetMail($adress, $subject,$body)

    [/autoit]

    Thomas

  • hilfe bei e-mail senden in outlook

    • Thomasb
    • 28. Juni 2007 um 13:48

    hi,
    vielleicht hilfe das

    Spoiler anzeigen
    [autoit]

    #include <inet.au3>
    #include <Date.au3>
    $PID = ProcessExists("Outlook.exe")
    $Outlook2003 = @ProgramFilesDir & "\Microsoft Office\Office11\Outlook.exe"
    $Ti = @HOUR & ":" & @MIN & ":" & @SEC
    $Address= ("xxx@xxx.de")
    $Subject= ("Tägliche Datensicherung vom " & _NowDate())
    ;
    $Body = ("Die Tägliche Datensicherung wurde um " & $Ti & " erfolgreich erstellt." & @LF & @LF & _
    "Im Pfad wurden folgende Dateien angelegt:" & @LF & _
    "Die Laufzeiten der einzelnen Scripte betrugen:" & @LF & @LF & @LF & _
    "Die folgenden Dateien führten zu einem Einlesefehler: " & @LF & @LF &@LF & @LF & _
    "und/oder" & @LF & _
    "Die folgenden Dateien führten zu einem Einlesefehler: " & @LF & @LF & @LF & @LF & _
    "Freundliche Grüße" & @LF & @LF & " Administrator")

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

    ;==> Ertsellung des E-Mail Body für Misserfolg
    If $PID Then
    _INetMail($address, $subject, $Body)
    Sleep(5000)
    Send("!s")
    Else
    Run($Outlook2003)
    WinWaitActive("Posteingang - Microsoft Outlook")
    _INetMail($address, $subject, $Body)
    Sleep(5000)
    Send("!s")
    Sleep(1500)
    Send("!{F4}")
    EndIf

    [/autoit]

    Mfg

    Thomas

  • Datei kopieren

    • Thomasb
    • 23. Juni 2007 um 14:35

    hi,

    danke Ziel erkannt un umgesetzt. Ich hoffe es läuft.

    ThomasB

  • Datei kopieren

    • Thomasb
    • 22. Juni 2007 um 21:46

    hi BErnd

    kannst du mir das etwas näher erklären ich habe mit dem StringSplit noch nicht geabeitet.

    [autoit]

    StringInStr($frta[2], $split[6])

    [/autoit]

    Ist das so richtig? Ich benötig nur das erste Datum um den Zeitpunkt (Daten kommen täglich) zu erhalten wann ein neues Datum kommt,

    Thomas

  • Datei kopieren

    • Thomasb
    • 22. Juni 2007 um 15:03

    hi,

    ich muss das Thema nochmals aufgreifen.Irgendwie will es nicht mehr so wie ich es mal wollte.
    Das sind die zweiten Zeile aus verschiedene Dateien die ich auslesen und nach dem dort drin enthaltenem Datum verschieben möchte.

    Spoiler anzeigen

    K;380;D--01/9005676256;9;20070622;20070701;20070731;31;...

    Spoiler anzeigen

    K;380;D--01/9005547731;9;20070601;20070601;20070630;31....

    Hier mein Ansatz

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <date.au3>
    #include <array.au3>
    #include <string.au3>
    Opt("TrayIconDebug", 1) ;0=no info, 1=debug line info
    ;
    Global $pathMain = "C:\GLI_PROD\Mapping\EDI_Eingang\" & @MDAY & "." & @MON & "." & @YEAR & "_test" & ".txt"
    Global $pathMain1 = "C:\GLI_PROD\Mapping\EDI_Eingang\" & @MDAY & "." & @MON & "." & @YEAR & "_o" & ".txt"
    Dim $pfad = "C:\GLI_PROD\Mapping\EDI_Eingang\"
    Dim $string = _FileListToArray($pfad, "*.INH";) ; liest alle *.INH-Files in Array $string
    Dim $match, $frta
    Dim $arErgebnis[1]
    Dim $arErgebnis1[1]
    ;Dim $pathMain
    $var = @YEAR & @MON
    $time = StringFormat("%02d", @YEAR & @MON, 0)
    If Not IsArray($string) Then
    MsgBox(16, "", "Keine Inhouse Datei(en) gefunden.. EXIT!";)
    Exit
    EndIf
    ;
    For $i = 1 To $string[0] ; Dateiliste abarbeiten
    _FileReadToArray($pfad & $string[$i], $frta)
    If @error <> 0 Then
    MsgBox(4096, "Error", " Fehler beim Einlesen der Datei: " & $pfad & $string[$i] & @LF & "Fehler: " & @error)
    Else
    $match = _StringBetween($frta[2], "/", ";";) ; Wert in Zeile 2 auslesen
    If Not @error Then
    If StringInStr($frta[1], "ER2529";) And StringInStr($frta[2], "K;380";) And StringInStr($frta[2], $var, 34) Then
    MsgBox(4096, "", "vorhanden bei datei: " & $string[$i] & " " & $match[0], 20)

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

    Else
    MsgBox(64, "", $string[$i] & " " & $match[0] & " anderes Datum", 10)
    ;_ArrayAdd($arErgebnis, "Datei: " & $string[$i] & " mit RE.-Nr.: " & $match[0])
    Sleep(1500)
    EndIf

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

    _FileWriteFromArray($pathMain, $arErgebnis, 1)
    Else
    MsgBox(4096, "", "In Datei: " & $string[$i] & " ist Nummer nicht enthalten.";)
    EndIf

    [/autoit]

    Der normale Teile geht. Aber wenn auf das Datum geschaut wird geht es nicht. Wo liegt mein Fehler?

    MFG Thomas

  • Array teilen

    • Thomasb
    • 21. Juni 2007 um 14:11

    hi,

    danke Bernd das funzt super

    :keks:

    mfg Thomas

  • Array teilen

    • Thomasb
    • 20. Juni 2007 um 20:34

    hi,

    das ist egal ambesten ist es wenn ich den tiefsten wert und den höchsten wert habe, da die Daten schon sortiert kommen. Deshalb habe ich auch mit min und max getestet. Leider war aber bei meinn Test der min Wert leer. Ich weiß nicht warum.

    thomas

  • Array teilen

    • Thomasb
    • 20. Juni 2007 um 17:47

    Hi,

    habe alles in ein neues Array eingelesen und mit Arrymin und max versucht. Leider bleibt min leer max wird richtig angezeigt.


    Spoiler anzeigen
    [autoit]

    _FileReadToArray($Txt2, $Txt4)
    _ArrayDisplay( $Txt4, "_ArrayDisplay() Test" )
    MsgBox(0,'Min Numeric value',_ArrayMin( $Txt4,1,1)&".." &_ArrayMax( $Txt4,1,1))

    [/autoit]

    MFG

    Thomas

  • Array teilen

    • Thomasb
    • 20. Juni 2007 um 17:35

    hi,

    kannst du bitte nochmal eine kurze Hilfe geben?

    Thomas

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™