Scipt ausfüehren JA/NEIN

  • guten tag zusammen
    wahrscheinlich total einfach, aber ich steige nicht durch

    auf Ja macht das ding das script
    aber auf NEIN startet die Msgbox immer neu
    irgendwie muss ich aus der schleife :cursing:

    wie muss ich das denn machen ??
    danke gruss roland

  • Meinst du

    [autoit]

    ExitLoop

    [/autoit]

    ?
    EDIT: Etwa so?

    [autoit]

    While ProcessExists($netskatexe)
    ;Hauptschleife Wartet auf Fortsetzen
    If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    ;If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    While WinActive("Daten zum Fortsetzen einer Runde exportieren")
    If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ;MsgBox(0, "", "Ich sende Daten ab", 2)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(10000)
    Else
    ExitLoop
    EndIf
    WEnd
    EndIf
    WEnd

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

    • Offizieller Beitrag

    Wozu die innere While-Schleife?

    Spoiler anzeigen
    [autoit]

    While ProcessExists($netskatexe)
    ;Hauptschleife Wartet auf Fortsetzen
    If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    If WinActive("Daten zum Fortsetzen einer Runde exportieren") And _
    MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ;MsgBox(0, "", "Ich sende Daten ab", 2)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(10000)
    EndIf
    EndIf
    WEnd

    [/autoit]
  • [autoit]


    While ProcessExists($netskatexe)
    ;Hauptschleife Wartet auf Fortsetzen
    If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    ;If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    While WinActive("Daten zum Fortsetzen einer Runde exportieren")
    If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ;MsgBox(0, "", "Ich sende Daten ab", 2)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(10000)
    Else
    ExitLoop
    EndIf
    WEnd
    EndIf
    EndIf
    WEnd

    [/autoit]
  • komme da nicht mit:-(

    mit

    Code
    exitloop 2


    schliesst die Msgbox
    aber es soll nicht das komplette script beenden ?

    ich fuege mal das gesamtscript hier ein (aber sehr langes ding )

    Spoiler anzeigen

    #RequireAdmin
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=netskatstart.ico
    #AutoIt3Wrapper_Outfile=netskatstart.exe
    #AutoIt3Wrapper_Res_Comment=Codet by Gummibaer
    #AutoIt3Wrapper_Res_Description=AutoRunner for Netskat
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.12
    #AutoIt3Wrapper_Res_FileVersion_AutoIncrement=p
    #AutoIt3Wrapper_Res_LegalCopyright=Gummibaer
    #AutoIt3Wrapper_Res_SaveSource=y
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Run_Tidy=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    Opt("TrayAutoPause", 0)
    Opt("TrayIconDebug", 0)
    Opt("TrayIconHide", 0)
    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.0.0
    Author: myName

    Script Function:
    Template AutoIt script.

    #ce ----------------------------------------------------------------------------

    ;[includes]
    #include <Inet.au3>
    #include <GuiTab.au3>
    #include <SendMessage.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <File.au3>
    #include <Array.au3>

    _Checkinstallation()

    If UBound($CmdLine) <> 4 Then
    MsgBox(0, "Parameter", "nicht alle Parameter beim Start von Netskatstart.exe eingegeben" & @CRLF & "Autoit wird beendet.")
    ;Exit

    EndIf
    Global $netskat_Title = "NetSkat -"
    Global $tTitle = "Turnier-Liste"
    Global $sTitle = "Einstellungen für"
    Global $neuTitle = "Neuen Spielernamen eingeben"
    Global $spielername_bearbeiten = "Eigenen Spielernamen bearbeiten"
    Global $netskatexe = "netskat.exe"
    Global $spieler_neu = $CmdLine[2]
    Global $mail_forts = $CmdLine[3]
    ;Global $NetSkatDir = _getNetSkatDir()
    $NetSkatDir = "c:\Programme\Cutesoft\Netskat\"
    If Not FileExists($NetSkatDir) Then
    MsgBox(0, "pfad", $NetSkatDir & @CRLF & "existiert nicht")
    $NetSkatDir = FileSelectFolder("mIRC Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die Netskat.exe", "C:\Programme", 7)
    EndIf
    MsgBox(0, "Pfad netskat", $NetSkatDir, 1)
    If Not ProcessExists($netskatexe) Then ; Wenn NetSkat nicht gestartet ist starte sie
    If Not $NetSkatDir Then ; Prüfe ob string lerr wenn ja dann msgbox + programm beenden
    MsgBox(48, "Fehler", "NetSkat wurde nicht gefunden!")
    Exit
    Else
    Run($NetSkatDir & "\" & $netskatexe, $NetSkatDir)
    EndIf
    EndIf
    WinActivate($netskat_Title) ; Sende Actevirungsbefehl
    WinWaitActive($netskat_Title) ; Warte auf Actives Fenster

    Local $netskat_gesamt_titel = WinGetTitle("[active]")
    $baseline = StringSplit($netskat_gesamt_titel, " ") ; teile sting anhand des lerrzeichen

    $Spieler = $baseline[5] ;
    ;MsgBox(0, "", $Spieler)
    If $Spieler <> $CmdLine[2] Then
    ControlSend($netskat_Title, "", "", "!es") ; Sende ALT+e+s
    WinActivate($spielername_bearbeiten) ; Sende Actevirungsbefehl
    WinWaitActive($spielername_bearbeiten) ; Warte auf Actives Fenster

    $gefunden = ControlCommand($spielername_bearbeiten, "", "[CLASS:ListBox; INSTANCE:1]", "FindString", $spieler_neu)
    ;MsgBox(0, "find ", $gefunden)
    If $gefunden = 0 Then
    ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:1]")
    WinActivate($neuTitle) ; Sende Actevirungsbefehl
    WinWaitActive($neuTitle) ; Warte auf Actives Fenster
    ControlSetText($neuTitle, "", "Edit1", $spieler_neu)
    Sleep(2000)
    ControlClick($neuTitle, "", "[CLASS:Button; INSTANCE:2]")
    Sleep(2000)
    WinActivate($spielername_bearbeiten) ; Sende Actevirungsbefehl
    WinWaitActive($spielername_bearbeiten) ; Warte auf Actives Fenster
    ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:4]")

    WinActivate($netskat_Title) ; Sende Actevirungsbefehl
    WinWaitActive($netskat_Title) ; Warte auf Actives Fenster
    ControlSend($netskat_Title, "", "", "!ee") ; Sende ALT+e+e
    WinWait($sTitle) ; Warte auf einstellungsfenster "Einstellungen für"
    WinActivate($sTitle) ; Sende Actevirungsbefehl
    WinWaitActive($sTitle) ; Warte auf Actives Fenster

    ; Hole Handle und ids für tabzuweisung
    $shWnd = WinGetHandle($sTitle)
    $shTab = ControlGetHandle($shWnd, "", "SysTabControl321")
    $TabID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $shTab)
    $TabID = $TabID[0]

    ; Wechsel zum Tab persönliche daten
    _GUICtrlTab_SetCurFocus($shTab, 2) ; Daten Spielerverzeichniss
    $sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:1]")
    ;MsgBox(0, "", "1")
    ;ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:6]")
    ; Wechsel zum Tab Spiel-server
    _GUICtrlTab_SetCurFocus($shTab, 8) ; Daten Spielerverzeichniss
    $sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    ControlSetText($sTitle, "", "Edit1", "92.51.143.26")

    ;MsgBox(0, "", "2")
    ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:5]")
    EndIf


    ControlCommand($spielername_bearbeiten, "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", $spieler_neu)
    MsgBox(0, "Spielername wechseln", "Neu eingestellt" & " " & $spieler_neu & @CRLF & "nach 2 sec schliesse ich selbst ", 2)
    ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:4]")

    EndIf


    WinActivate($netskat_Title) ; Sende Actevirungsbefehl
    WinWaitActive($netskat_Title) ; Warte auf Actives Fenster
    ControlSend($netskat_Title, "", "", "!ee") ; Sende ALT+e+e

    WinWait($sTitle) ; Warte auf einstellungsfenster
    WinActivate($sTitle) ; Sende Actevirungsbefehl
    WinWaitActive($sTitle) ; Warte auf Actives Fenster
    ;MsgBox(0, "", "?????????")
    ; Hole Handle und ids für tabzuweisung
    $shWnd = WinGetHandle($sTitle)
    $shTab = ControlGetHandle($shWnd, "", "SysTabControl321")
    $TabID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $shTab)
    $TabID = $TabID[0]

    ; Wechsel zum Tab Datenverzeichniss
    _GUICtrlTab_SetCurFocus($shTab, 4) ; Daten Spielerverzeichniss
    $sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    ; Lese SpielerDatenVerzeichniss aus
    $Pfad_SpielProtokol = ControlGetText($sTitle, "", "Edit1")
    IniWrite(@ScriptDir & "\netskat.mrc", "super-tool", "Pfad_SpielProtokoll", $Pfad_SpielProtokol)
    ;MsgBox(0, "", "pfad geschrieben")
    ControlClick("Einstellungen für ", "", "[CLASS:Button; INSTANCE:2]")

    _ScanneLogDir($Pfad_SpielProtokol, 1)

    If $CmdLine[1] == "E" Then
    ControlSend($netskat_Title, "", "", "{F2}")
    ControlSend($netskat_Title, "", "", "!e")
    ControlSend($netskat_Title, "", "", "{ENTER}")
    ControlSend($netskat_Title, "", "", "{TAB 3}")
    ControlSend($netskat_Title, "", "", "{ENTER}")
    ElseIf $CmdLine[1] == "M" Then
    ControlSend($netskat_Title, "", "", "{F2}")
    ControlSend($netskat_Title, "", "", "!M")
    ControlSend($netskat_Title, "", "", "{ENTER}")
    ControlSend($netskat_Title, "", "", "^v")
    ElseIf $CmdLine[1] == "FE" Then
    ControlSend($netskat_Title, "", "", "!sf")
    ControlSend($netskat_Title, "", "", "!e")
    ElseIf $CmdLine[1] == "FM" Then
    ControlSend($netskat_Title, "", "", "!sf")
    ControlSend($netskat_Title, "", "", "!n")
    EndIf

    If _Singleton("NetSkatUeberwachung", 1) = 0 Then Exit ; Nur eine Instance erlauben
    While ProcessExists($netskatexe)
    ; Hauptschleife Wartet auf Spielende
    If WinExists($tTitle) Then
    While WinActive($tTitle)
    $thWnd = WinGetHandle($tTitle)
    $thandle = ControlGetHandle($thWnd, "", "Button3")
    $var = ControlGetText($thWnd, "", "Button3")
    If $var = "Spielergebnis als Email verschicken" Then
    _ScanneLogDir($Pfad_SpielProtokol)
    EndIf
    Sleep(30)
    WEnd
    EndIf
    Sleep(30)
    #cs
    ; Hauptschleife Wartet auf Fortsetzen
    If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    If WinActive("Daten zum Fortsetzen einer Runde exportieren") And MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ;MsgBox(0, "", "Ich sende Daten ab", 2)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(10000)
    EndIf
    EndIf
    #ce
    ; Hauptschleife Wartet auf Fortsetzen
    ;Hauptschleife Wartet auf Fortsetzen
    If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    ;If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    While WinActive("Daten zum Fortsetzen einer Runde exportieren")
    If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ;MsgBox(0, "", "Ich sende Daten ab", 2)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(10000)
    Else
    ExitLoop 2
    EndIf
    WEnd
    EndIf


    WEnd
    _ScanneLogDir($Pfad_SpielProtokol)

    Func _ScanneLogDir($logdir, $verschieben = 0)

    If $logdir = "" Then Return
    If Not FileExists($logdir & "\Spielprotokolle\Archiv") Then DirCreate($logdir & "\Spielprotokolle\Archiv")
    If Not FileExists($logdir & "\Spielprotokolle\Unbekannt") Then DirCreate($logdir & "\Spielprotokolle\Unbekannt")
    Local $hSearch, $sFile, $tFile
    $count = 0
    Dim $FileListArray[1][2]
    $hSearch = FileFindFirstFile($logdir & "\Spielprotokolle\*.TXT")
    ;MsgBox(0, "4---------$hSearch", $hSearch)

    If $hSearch <> -1 Then
    While 1
    $sFile = FileFindNextFile($hSearch)
    ;MsgBox(0, '155----------$sfile', $sFile)

    If @error Then
    SetError(0)
    ExitLoop
    EndIf
    If StringInStr(FileGetAttrib($sFile), "D") == 1 Then ContinueLoop
    $tFile = $logdir & "\Spielprotokolle\" & $sFile
    ;MsgBox(0, '5----------$tfile', $tFile)
    ;MsgBox(0, "6--------------------verschieben", $verschieben)

    If $verschieben = 0 Then
    ReDim $FileListArray[$count + 1][2]
    $t = FileGetTime($tFile, 0)
    $FileListArray[$count][0] = $tFile
    $FileListArray[$count][1] = $t[0] & "." & $t[1] & "." & $t[2] & "." & $t[3] & "." & $t[4] & "." & $t[5]
    $count += 1
    Else
    ;MsgBox(0, "173-------------##", $verschieben & @CRLF & $tFile & @CRLF & $logdir & @CRLF & $sFile)

    FileMove($tFile, $logdir & "\Spielprotokolle\Unbekannt\" & $sFile, 1)
    EndIf
    WEnd
    FileClose($hSearch)
    EndIf
    If $verschieben = 0 Then

    _ArraySort($FileListArray, 1, 0, 0, 1)

    If $FileListArray[0][0] <> "" Then _oeffne_LOG_und_lese_daten_aus($FileListArray[0][0], $logdir)
    EndIf
    ;FileMove($logdir & "\Spielprotokolle\*.TXT", $logdir & "\Spielprotokolle\Unbekannt\", 8)
    EndFunc ;==>_ScanneLogDir

    Func _oeffne_LOG_und_lese_daten_aus($file, $logdir)
    Local $ende = False, $counter, $SpielCounter, $Spieler[3][5]
    Dim $aRecords
    _FileReadToArray($file, $aRecords)
    ;_ArrayDisplay($aRecords, "$aRecords")
    For $i = 1 To $aRecords[0]
    If StringLeft($aRecords[$i], 6) = "Spiel " And StringIsDigit(StringMid($aRecords[$i], 7)) Then
    $rLine = StringSplit($aRecords[$i], " ", 2)
    $SpielCounter = $rLine[1]
    EndIf
    If $ende = True Then
    $counter += 1
    $rLine = StringSplit($aRecords[$i], " ", 2)
    If $counter = 1 Then
    $playerS = $rLine[5]
    ElseIf $counter = 3 Then
    $playerE = $rLine[5]
    ElseIf $counter = 5 Then
    $Spieler[0][0] = $rLine[0]
    $Spieler[0][1] = $rLine[2]
    $Spieler[0][2] = $rLine[5]
    ElseIf $counter = 6 Then
    $Spieler[0][3] = $rLine[4]
    ElseIf $counter = 7 Then
    $Spieler[0][4] = $rLine[2]
    ElseIf $counter = 9 Then
    $Spieler[1][0] = $rLine[0]
    $Spieler[1][1] = $rLine[2]
    $Spieler[1][2] = $rLine[5]
    ElseIf $counter = 10 Then
    $Spieler[1][3] = $rLine[4]
    ElseIf $counter = 11 Then
    $Spieler[1][4] = $rLine[2]
    ElseIf $counter = 13 Then
    $Spieler[2][0] = $rLine[0]
    $Spieler[2][1] = $rLine[2]
    $Spieler[2][2] = $rLine[5]
    ElseIf $counter = 14 Then
    $Spieler[2][3] = $rLine[4]
    ElseIf $counter = 15 Then
    $Spieler[2][4] = $rLine[2]
    EndIf
    EndIf
    If $ende = False And $SpielCounter = 36 And $aRecords[$i] = "******************************************************************" Then $ende = True
    Next
    $t = FileGetTime($file, 0)

    ;~ id datum sp s1 s2 s3 p1 p2 p3 g1 g2 g3 v1 v2 v3 E Spieler
    $url = "http://super-skat.de/skat/Gummibaer/eintragen.php"
    $daten = "/?Datum=" & $t[2] & "." & $t[1] & "." & $t[0] & "." & $t[3] & "&Uhrzeit=" & $t[3] & ":" & $t[4] & ":" & $t[5] & "&sp=36&s1=" & $Spieler[0][0] & "&s2=" & $Spieler[1][0] & "&s3=" & $Spieler[2][0] & "&p1=" & $Spieler[0][4] & "&p2=" & $Spieler[1][4] & "&p3=" & $Spieler[2][4] & "&g1=" & $Spieler[0][1] & "&g2=" & $Spieler[1][1] & "&g3=" & $Spieler[2][1] & "&v1=" & $Spieler[0][2] & "&v2=" & $Spieler[1][2] & "&v3=" & $Spieler[2][2] & "&E=" & $playerE & "&Spieler=" & $playerS
    $string = $url & $daten
    ;MsgBox(0, 'Datensatz', $string);------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    $result = _INetGetSource($string)
    If $result = "OK" Then
    $result = "Daten wurden eingetragen!"
    ElseIf $result = "OK2" Then
    $result = "Daten schon vorhanden!"
    ElseIf $result = "Error" Or $result = "" Then
    $result = "Daten nicht eingetragen!" & @CRLF & " server problem wahrscheinllich"
    Else
    $result = "Keine Verbindung zum Server"
    EndIf
    If MsgBox(4 + 32, "Soll Netskat beendet werde?", "AutoIt--Meldung: " & @CRLF & $result) = 6 Then
    FileMove($file, $logdir & "\Spielprotokolle\Archiv\", 8)
    MsgBox(0 + 48, "verschieben", "Protokolldatei wurde in Ordner Archiv Verschoben")
    Exit
    Else
    MsgBox(0 + 64, "Ergebniss melden:", "Nun kannst du aus Netskat heraus Mailen")
    Exit
    EndIf
    EndFunc ;==>_oeffne_LOG_und_lese_daten_aus


    Func _getNetSkatDir()
    $temp = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NetSkat", "UninstallString") ; Hole String aus der Reg db
    If Not $temp Then Return
    $baseline = StringSplit($temp, " ") ; teile sting anhand des lerrzeichen
    $tNetSkatDir = StringMid($baseline[2], 3, StringLen($baseline[2]) - 13) ; schneide vore -f und hinten DeIsL1.isu ab
    If $tNetSkatDir = "" Then
    While 1
    $pfad = FileSelectFolder("NetSkat Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die netskat.exe befindet", "", 7)
    If @error = 1 Then
    MsgBox(48, "Instalation Fehler", "Instalation Abgebrochen")
    Exit
    EndIf
    If FileExists($pfad & "\netskat.exe") Then
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NetSkat", "UninstallString", "REG_SZ", @WindowsDir & "\unin0407.exe -f" & $pfad & "\DeIsL1.isu")
    Return $pfad
    ExitLoop
    EndIf
    MsgBox(48, "Instalation Fehler", "Im Ordner" & @CRLF & $pfad & @CRLF & "Befindet sich keine netskat.exe")
    WEnd
    MsgBox(48, "282 suche Netskatordner", "mit oeffnen dialog")

    EndIf

    Return $tNetSkatDir
    EndFunc ;==>_getNetSkatDir

    Func _Checkinstallation()
    If FileExists("mirc.exe") And FileExists("mirc.ini") Then
    If Not FileExists("netskat.mrc") Then FileInstall("netskat.mrc", "netskat.mrc")
    Return
    Else
    While 1
    $pfad = FileSelectFolder("mIRC Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die mIRC.exe" & @CRLF & "und die mIRC.ini befindet", "", 7)
    If @error = 1 Then
    MsgBox(48, "Instalation Fehler", "Instalation Abgebrochen")
    Exit
    EndIf
    If FileExists($pfad & "\mirc.exe") And FileExists($pfad & "\mirc.ini") Then ExitLoop
    MsgBox(48, "Instalation Fehler", "Im Ordner" & @CRLF & $pfad & @CRLF & "Befindet sich keine mIRC.exe")
    WEnd
    FileCopy(@ScriptFullPath, $pfad & "\netskatstart.exe", 1)
    FileInstall("netskat.mrc", $pfad & "\netskat.mrc")
    FileInstall("netskat.jpg", $pfad & "\netskat.jpg")
    FileInstall("netskat_import.exe", $pfad & "\netskat_import.exe")
    FileInstall("grandovert.exe", $pfad & "\grandovert.exe")
    $filenams = $pfad & "\mirc.ini"
    $section = "script"
    $key = "n0"
    $value = "on 1:START:{ /.load -rs netskat.mrc }"
    IniWrite($filenams, $section, $key, $value)
    MsgBox(0 + 64, "Load", "Netskatstart.exe , Sceenshot und Popups installiert")
    ;_SelfDelete()
    Exit
    EndIf

    EndFunc ;==>_Checkinstallation

    das hauptsript muss eben weiterlaufen bis

    Zitat

    ; Hauptschleife Wartet auf Spielende


    ausgefuehrt wird
    ich hoffe es findet jemand den fehler ?

    danke erst mal
    gruss
    roland

  • ich glaube cih klass die abfrage weg :-((

    anscheinend doch nicht so einfach,

    da kann ich dann lange rumsuchen (als anfänger)

    gruss roland

    Ps:
    das mit der msgbox geht ja nun
    nur darf das ding nicht das script beenden, wenn ich auf NEIN drücke

    Einmal editiert, zuletzt von super47 (12. Juli 2010 um 13:42)

  • da muss weitermachen

    im gesamtscript ist das direckt über dem abschnitt mit dem ja/ nein

    den gesamt code habe weiter oben in nem spoiler

    danke gruss roland

    • Offizieller Beitrag

    Das Problem entsteht m.M. nach, weil du 2 getrennte Abfragen für einen Zustand machst.
    Ich habe mal etwas geändert (Änderungen markiert mit ";#############"). Probiers aus.

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=netskatstart.ico
    #AutoIt3Wrapper_Outfile=netskatstart.exe
    #AutoIt3Wrapper_Res_Comment=Codet by Gummibaer
    #AutoIt3Wrapper_Res_Description=AutoRunner for Netskat
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.12
    #AutoIt3Wrapper_Res_FileVersion_AutoIncrement=p
    #AutoIt3Wrapper_Res_LegalCopyright=Gummibaer
    #AutoIt3Wrapper_Res_SaveSource=y
    #AutoIt3Wrapper_Res_Language=1031
    #AutoIt3Wrapper_Run_Tidy=y
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    Opt("TrayAutoPause", 0)
    Opt("TrayIconDebug", 0)
    Opt("TrayIconHide", 0)
    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.0.0
    Author: myName

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

    Script Function:
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ;[includes]
    #include <Inet.au3>
    #include <GuiTab.au3>
    #include <SendMessage.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <File.au3>
    #include <Array.au3>

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

    _Checkinstallation()

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

    If UBound($CmdLine) <> 4 Then
    MsgBox(0, "Parameter", "nicht alle Parameter beim Start von Netskatstart.exe eingegeben" & @CRLF & "Autoit wird beendet.")
    ;Exit

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

    EndIf
    Global $netskat_Title = "NetSkat -"
    Global $tTitle = "Turnier-Liste"
    Global $sTitle = "Einstellungen für"
    Global $neuTitle = "Neuen Spielernamen eingeben"
    Global $spielername_bearbeiten = "Eigenen Spielernamen bearbeiten"
    Global $netskatexe = "netskat.exe"
    Global $spieler_neu = $CmdLine[2]
    Global $mail_forts = $CmdLine[3]
    ;Global $NetSkatDir = _getNetSkatDir()
    $NetSkatDir = "c:\Programme\Cutesoft\Netskat\"

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

    ;########################################################## Code so ändern erspart spätere Abfrage auf Gültigkeit
    If Not FileExists($NetSkatDir) Then
    Do
    $NetSkatDir = FileSelectFolder("mIRC Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die Netskat.exe", "C:\Programme", 7)
    Until FileExists($NetSkatDir)
    ;~ MsgBox(0, "pfad", $NetSkatDir & @CRLF & "existiert nicht")
    ;~ $NetSkatDir = FileSelectFolder("mIRC Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die Netskat.exe", "C:\Programme", 7)
    EndIf
    ;~ MsgBox(0, "Pfad netskat", $NetSkatDir, 1)

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

    If Not ProcessExists($netskatexe) Then ; Wenn NetSkat nicht gestartet ist starte sie
    ;~ If Not $NetSkatDir Then ; Prüfe ob string lerr wenn ja dann msgbox + programm beenden
    ;~ MsgBox(48, "Fehler", "NetSkat wurde nicht gefunden!")
    ;~ Exit
    ;~ Else
    Run($NetSkatDir & "\" & $netskatexe, $NetSkatDir)
    ;~ EndIf
    EndIf
    WinActivate($netskat_Title) ; Sende Actevirungsbefehl
    WinWaitActive($netskat_Title) ; Warte auf Actives Fenster

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

    Local $netskat_gesamt_titel = WinGetTitle("[active]")
    $baseline = StringSplit($netskat_gesamt_titel, " ") ; teile sting anhand des lerrzeichen

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

    $Spieler = $baseline[5] ;
    ;MsgBox(0, "", $Spieler)
    If $Spieler <> $CmdLine[2] Then
    ControlSend($netskat_Title, "", "", "!es") ; Sende ALT+e+s
    WinActivate($spielername_bearbeiten) ; Sende Actevirungsbefehl
    WinWaitActive($spielername_bearbeiten) ; Warte auf Actives Fenster

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

    $gefunden = ControlCommand($spielername_bearbeiten, "", "[CLASS:ListBox; INSTANCE:1]", "FindString", $spieler_neu)
    ;MsgBox(0, "find ", $gefunden)
    If $gefunden = 0 Then
    ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:1]")
    WinActivate($neuTitle) ; Sende Actevirungsbefehl
    WinWaitActive($neuTitle) ; Warte auf Actives Fenster
    ControlSetText($neuTitle, "", "Edit1", $spieler_neu)
    Sleep(2000)
    ControlClick($neuTitle, "", "[CLASS:Button; INSTANCE:2]")
    Sleep(2000)
    WinActivate($spielername_bearbeiten) ; Sende Actevirungsbefehl
    WinWaitActive($spielername_bearbeiten) ; Warte auf Actives Fenster
    ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:4]")

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

    WinActivate($netskat_Title) ; Sende Actevirungsbefehl
    WinWaitActive($netskat_Title) ; Warte auf Actives Fenster
    ControlSend($netskat_Title, "", "", "!ee") ; Sende ALT+e+e
    WinWait($sTitle) ; Warte auf einstellungsfenster "Einstellungen für"
    WinActivate($sTitle) ; Sende Actevirungsbefehl
    WinWaitActive($sTitle) ; Warte auf Actives Fenster

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

    ; Hole Handle und ids für tabzuweisung
    $shWnd = WinGetHandle($sTitle)
    $shTab = ControlGetHandle($shWnd, "", "SysTabControl321")
    $TabID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $shTab)
    $TabID = $TabID[0]

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

    ; Wechsel zum Tab persönliche daten
    _GUICtrlTab_SetCurFocus($shTab, 2) ; Daten Spielerverzeichniss
    $sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:1]")
    ;MsgBox(0, "", "1")
    ;ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:6]")
    ; Wechsel zum Tab Spiel-server
    _GUICtrlTab_SetCurFocus($shTab, 8) ; Daten Spielerverzeichniss
    $sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    ControlSetText($sTitle, "", "Edit1", "92.51.143.26")

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

    ;MsgBox(0, "", "2")
    ControlClick($sTitle, "", "[CLASS:Button; INSTANCE:5]")
    EndIf

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

    ControlCommand($spielername_bearbeiten, "", "[CLASS:ListBox; INSTANCE:1]", "SelectString", $spieler_neu)
    MsgBox(0, "Spielername wechseln", "Neu eingestellt" & " " & $spieler_neu & @CRLF & "nach 2 sec schliesse ich selbst ", 2)
    ControlClick($spielername_bearbeiten, "", "[CLASS:Button; INSTANCE:4]")

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

    EndIf

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

    WinActivate($netskat_Title) ; Sende Actevirungsbefehl
    WinWaitActive($netskat_Title) ; Warte auf Actives Fenster
    ControlSend($netskat_Title, "", "", "!ee") ; Sende ALT+e+e

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

    WinWait($sTitle) ; Warte auf einstellungsfenster
    WinActivate($sTitle) ; Sende Actevirungsbefehl
    WinWaitActive($sTitle) ; Warte auf Actives Fenster
    ;MsgBox(0, "", "?????????")
    ; Hole Handle und ids für tabzuweisung
    $shWnd = WinGetHandle($sTitle)
    $shTab = ControlGetHandle($shWnd, "", "SysTabControl321")
    $TabID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $shTab)
    $TabID = $TabID[0]

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

    ; Wechsel zum Tab Datenverzeichniss
    _GUICtrlTab_SetCurFocus($shTab, 4) ; Daten Spielerverzeichniss
    $sResult = _SendMessage($shWnd, $WM_NOTIFY, $TabID, $TCN_SELCHANGE)
    ; Lese SpielerDatenVerzeichniss aus
    $Pfad_SpielProtokol = ControlGetText($sTitle, "", "Edit1")
    IniWrite(@ScriptDir & "\netskat.mrc", "super-tool", "Pfad_SpielProtokoll", $Pfad_SpielProtokol)
    ;MsgBox(0, "", "pfad geschrieben")
    ControlClick("Einstellungen für ", "", "[CLASS:Button; INSTANCE:2]")

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

    _ScanneLogDir($Pfad_SpielProtokol, 1)

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

    If $CmdLine[1] == "E" Then
    ControlSend($netskat_Title, "", "", "{F2}")
    ControlSend($netskat_Title, "", "", "!e")
    ControlSend($netskat_Title, "", "", "{ENTER}")
    ControlSend($netskat_Title, "", "", "{TAB 3}")
    ControlSend($netskat_Title, "", "", "{ENTER}")
    ElseIf $CmdLine[1] == "M" Then
    ControlSend($netskat_Title, "", "", "{F2}")
    ControlSend($netskat_Title, "", "", "!M")
    ControlSend($netskat_Title, "", "", "{ENTER}")
    ControlSend($netskat_Title, "", "", "^v")
    ElseIf $CmdLine[1] == "FE" Then
    ControlSend($netskat_Title, "", "", "!sf")
    ControlSend($netskat_Title, "", "", "!e")
    ElseIf $CmdLine[1] == "FM" Then
    ControlSend($netskat_Title, "", "", "!sf")
    ControlSend($netskat_Title, "", "", "!n")
    EndIf

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

    If _Singleton("NetSkatUeberwachung", 1) = 0 Then Exit ; Nur eine Instance erlauben
    While ProcessExists($netskatexe)
    ; Hauptschleife Wartet auf Spielende
    If WinExists($tTitle) Then
    While WinActive($tTitle)
    $thWnd = WinGetHandle($tTitle)
    $thandle = ControlGetHandle($thWnd, "", "Button3")
    $var = ControlGetText($thWnd, "", "Button3")
    If $var = "Spielergebnis als Email verschicken" Then
    _ScanneLogDir($Pfad_SpielProtokol)
    EndIf
    Sleep(30)
    WEnd
    EndIf
    Sleep(30)
    #cs
    ; Hauptschleife Wartet auf Fortsetzen
    If WinExists("Daten zum Fortsetzen einer Runde exportieren") Then
    If WinActive("Daten zum Fortsetzen einer Runde exportieren") And MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIM") = 6 Then
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ;MsgBox(0, "", "Ich sende Daten ab", 2)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(10000)
    EndIf
    EndIf
    #ce
    ; Hauptschleife Wartet auf Fortsetzen
    ;Hauptschleife Wartet auf Fortsetzen
    ;########################################################################################################
    While WinExists("Daten zum Fortsetzen einer Runde exportieren") And _
    WinActive("Daten zum Fortsetzen einer Runde exportieren")
    If MsgBox(4, "Auswahl", "Automatisch ist JA" & @CRLF & "Selbst wählen = NEIN") = 6 Then
    ControlSetText("Daten zum Fortsetzen einer Runde exportieren", "", "Edit1", $mail_forts)
    Send("{ENTER}")
    Sleep(10000)
    ;MsgBox(0, "", "Ich sende Daten ab", 2)
    ControlClick("Daten zum Fortsetzen einer Runde exportieren", "", "[ID:64]")
    Sleep(10000)
    EndIf
    WEnd

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

    WEnd
    _ScanneLogDir($Pfad_SpielProtokol)

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

    Func _ScanneLogDir($logdir, $verschieben = 0)

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

    If $logdir = "" Then Return
    If Not FileExists($logdir & "\Spielprotokolle\Archiv") Then DirCreate($logdir & "\Spielprotokolle\Archiv")
    If Not FileExists($logdir & "\Spielprotokolle\Unbekannt") Then DirCreate($logdir & "\Spielprotokolle\Unbekannt")
    Local $hSearch, $sFile, $tFile
    $count = 0
    Dim $FileListArray[1][2]
    $hSearch = FileFindFirstFile($logdir & "\Spielprotokolle\*.TXT")
    ;MsgBox(0, "4---------$hSearch", $hSearch)

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

    If $hSearch <> -1 Then
    While 1
    $sFile = FileFindNextFile($hSearch)
    ;MsgBox(0, '155----------$sfile', $sFile)

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

    If @error Then
    SetError(0)
    ExitLoop
    EndIf
    If StringInStr(FileGetAttrib($sFile), "D") == 1 Then ContinueLoop
    $tFile = $logdir & "\Spielprotokolle\" & $sFile
    ;MsgBox(0, '5----------$tfile', $tFile)
    ;MsgBox(0, "6--------------------verschieben", $verschieben)

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

    If $verschieben = 0 Then
    ReDim $FileListArray[$count + 1][2]
    $t = FileGetTime($tFile, 0)
    $FileListArray[$count][0] = $tFile
    $FileListArray[$count][1] = $t[0] & "." & $t[1] & "." & $t[2] & "." & $t[3] & "." & $t[4] & "." & $t[5]
    $count += 1
    Else
    ;MsgBox(0, "173-------------##", $verschieben & @CRLF & $tFile & @CRLF & $logdir & @CRLF & $sFile)

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

    FileMove($tFile, $logdir & "\Spielprotokolle\Unbekannt\" & $sFile, 1)
    EndIf
    WEnd
    FileClose($hSearch)
    EndIf
    If $verschieben = 0 Then

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

    _ArraySort($FileListArray, 1, 0, 0, 1)

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

    If $FileListArray[0][0] <> "" Then _oeffne_LOG_und_lese_daten_aus($FileListArray[0][0], $logdir)
    EndIf
    ;FileMove($logdir & "\Spielprotokolle\*.TXT", $logdir & "\Spielprotokolle\Unbekannt\", 8)
    EndFunc ;==>_ScanneLogDir

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

    Func _oeffne_LOG_und_lese_daten_aus($file, $logdir)
    Local $ende = False, $counter, $SpielCounter, $Spieler[3][5]
    Dim $aRecords
    _FileReadToArray($file, $aRecords)
    ;_ArrayDisplay($aRecords, "$aRecords")
    For $i = 1 To $aRecords[0]
    If StringLeft($aRecords[$i], 6) = "Spiel " And StringIsDigit(StringMid($aRecords[$i], 7)) Then
    $rLine = StringSplit($aRecords[$i], " ", 2)
    $SpielCounter = $rLine[1]
    EndIf
    If $ende = True Then
    $counter += 1
    $rLine = StringSplit($aRecords[$i], " ", 2)
    If $counter = 1 Then
    $playerS = $rLine[5]
    ElseIf $counter = 3 Then
    $playerE = $rLine[5]
    ElseIf $counter = 5 Then
    $Spieler[0][0] = $rLine[0]
    $Spieler[0][1] = $rLine[2]
    $Spieler[0][2] = $rLine[5]
    ElseIf $counter = 6 Then
    $Spieler[0][3] = $rLine[4]
    ElseIf $counter = 7 Then
    $Spieler[0][4] = $rLine[2]
    ElseIf $counter = 9 Then
    $Spieler[1][0] = $rLine[0]
    $Spieler[1][1] = $rLine[2]
    $Spieler[1][2] = $rLine[5]
    ElseIf $counter = 10 Then
    $Spieler[1][3] = $rLine[4]
    ElseIf $counter = 11 Then
    $Spieler[1][4] = $rLine[2]
    ElseIf $counter = 13 Then
    $Spieler[2][0] = $rLine[0]
    $Spieler[2][1] = $rLine[2]
    $Spieler[2][2] = $rLine[5]
    ElseIf $counter = 14 Then
    $Spieler[2][3] = $rLine[4]
    ElseIf $counter = 15 Then
    $Spieler[2][4] = $rLine[2]
    EndIf
    EndIf
    If $ende = False And $SpielCounter = 36 And $aRecords[$i] = "******************************************************************" Then $ende = True
    Next
    $t = FileGetTime($file, 0)

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

    ;~ id datum sp s1 s2 s3 p1 p2 p3 g1 g2 g3 v1 v2 v3 E Spieler
    $url = "http://super-skat.de/skat/Gummibaer/eintragen.php"
    $daten = "/?Datum=" & $t[2] & "." & $t[1] & "." & $t[0] & "." & $t[3] & "&Uhrzeit=" & $t[3] & ":" & $t[4] & ":" & $t[5] & "&sp=36&s1=" & $Spieler[0][0] & "&s2=" & $Spieler[1][0] & "&s3=" & $Spieler[2][0] & "&p1=" & $Spieler[0][4] & "&p2=" & $Spieler[1][4] & "&p3=" & $Spieler[2][4] & "&g1=" & $Spieler[0][1] & "&g2=" & $Spieler[1][1] & "&g3=" & $Spieler[2][1] & "&v1=" & $Spieler[0][2] & "&v2=" & $Spieler[1][2] & "&v3=" & $Spieler[2][2] & "&E=" & $playerE & "&Spieler=" & $playerS
    $string = $url & $daten
    ;MsgBox(0, 'Datensatz', $string);------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    $result = _INetGetSource($string)
    If $result = "OK" Then
    $result = "Daten wurden eingetragen!"
    ElseIf $result = "OK2" Then
    $result = "Daten schon vorhanden!"
    ElseIf $result = "Error" Or $result = "" Then
    $result = "Daten nicht eingetragen!" & @CRLF & " server problem wahrscheinllich"
    Else
    $result = "Keine Verbindung zum Server"
    EndIf
    If MsgBox(4 + 32, "Soll Netskat beendet werde?", "AutoIt--Meldung: " & @CRLF & $result) = 6 Then
    FileMove($file, $logdir & "\Spielprotokolle\Archiv\", 8)
    MsgBox(0 + 48, "verschieben", "Protokolldatei wurde in Ordner Archiv Verschoben")
    Exit
    Else
    MsgBox(0 + 64, "Ergebniss melden:", "Nun kannst du aus Netskat heraus Mailen")
    Exit
    EndIf
    EndFunc ;==>_oeffne_LOG_und_lese_daten_aus

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

    Func _getNetSkatDir()
    $temp = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NetSkat", "UninstallString") ; Hole String aus der Reg db
    If Not $temp Then Return
    $baseline = StringSplit($temp, " ") ; teile sting anhand des lerrzeichen
    $tNetSkatDir = StringMid($baseline[2], 3, StringLen($baseline[2]) - 13) ; schneide vore -f und hinten DeIsL1.isu ab
    If $tNetSkatDir = "" Then
    While 1
    $pfad = FileSelectFolder("NetSkat Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die netskat.exe befindet", "", 7)
    If @error = 1 Then
    MsgBox(48, "Instalation Fehler", "Instalation Abgebrochen")
    Exit
    EndIf
    If FileExists($pfad & "\netskat.exe") Then
    RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NetSkat", "UninstallString", "REG_SZ", @WindowsDir & "\unin0407.exe -f" & $pfad & "\DeIsL1.isu")
    Return $pfad
    ExitLoop
    EndIf
    MsgBox(48, "Instalation Fehler", "Im Ordner" & @CRLF & $pfad & @CRLF & "Befindet sich keine netskat.exe")
    WEnd
    MsgBox(48, "282 suche Netskatordner", "mit oeffnen dialog")

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

    EndIf

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

    Return $tNetSkatDir
    EndFunc ;==>_getNetSkatDir

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

    Func _Checkinstallation()
    If FileExists("mirc.exe") And FileExists("mirc.ini") Then
    If Not FileExists("netskat.mrc") Then FileInstall("netskat.mrc", "netskat.mrc")
    Return
    Else
    While 1
    $pfad = FileSelectFolder("mIRC Verzeichniss auswählen!" & @CRLF & "Den Ordner wo sich die mIRC.exe" & @CRLF & "und die mIRC.ini befindet", "", 7)
    If @error = 1 Then
    MsgBox(48, "Instalation Fehler", "Instalation Abgebrochen")
    Exit
    EndIf
    If FileExists($pfad & "\mirc.exe") And FileExists($pfad & "\mirc.ini") Then ExitLoop
    MsgBox(48, "Instalation Fehler", "Im Ordner" & @CRLF & $pfad & @CRLF & "Befindet sich keine mIRC.exe")
    WEnd
    FileCopy(@ScriptFullPath, $pfad & "\netskatstart.exe", 1)
    FileInstall("netskat.mrc", $pfad & "\netskat.mrc")
    FileInstall("netskat.jpg", $pfad & "\netskat.jpg")
    FileInstall("netskat_import.exe", $pfad & "\netskat_import.exe")
    FileInstall("grandovert.exe", $pfad & "\grandovert.exe")
    $filenams = $pfad & "\mirc.ini"
    $section = "script"
    $key = "n0"
    $value = "on 1:START:{ /.load -rs netskat.mrc }"
    IniWrite($filenams, $section, $key, $value)
    MsgBox(0 + 64, "Load", "Netskatstart.exe , Sceenshot und Popups installiert")
    ;_SelfDelete()
    Exit
    EndIf

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

    EndFunc ;==>_Checkinstallation

    [/autoit]


    Ich habe es jedenfalls so verstanden, dass bei "Nein" die Abfrage-Schleife wieder durchlaufen werden soll.

  • hi BUGFIX,
    danke erst mal fuer deine Muehe.

    folgender code funktioniert


    While ProcessExists($netskatexe)prüft ob Programm lauft

    dann kommt eine schleife:


    Da wird geprüft ob das programm ein bestimmtes fenster (erscheint am ende dess spiels), offen ist.
    dann wird die FUNC _ScanneLogDir($Pfad_SpielProtokol) ausgefüehrt. (in dieser wird auch das script dann beendet

    es gibt noch eine weitere schleife in der schleife While ProcessExists($netskatexe)

    da wirs in edit1 in diesem Fenster ein text ----- $mail_forts--(=ne mail adresse) Global $mail_forts = $CmdLine[3]
    eingefuegt.

    in dieser zweiten schleife wollte ich nun JA/NEIN einbauen, so dass das Edit1 Feld nicht automatisch ausgefüllt wird, sonder der Nutzer selbst was eintragen kann.
    mit ExitLoop kommt msgbox immer wieder (logisch weil fenster offen ist), lässt sich also nicht schliessen, bzw startet immer wieder.
    ExitLoop 2 beendet diese Schleife und die Hauptschleife.
    aber leider auch das ganze script, das soll aber nicht sein, weil das script ja bei Spielende noch was machen soll, nämlich den code in Schleife 1 ausführen.

    ich hoffe es ist so verständlich,
    das in deinem letzten Beitrag (Änderungen markiert mit ";#############"). Probiers aus
    habe ich nciht kapiert :sleeping:

    Vielen dank für die Geduld
    Gruss Roland