Gibts nicht geht nicht

  • Hallo,

    aus langer Erfahrung weiß ich "Der Computer hat immer recht", doch nun bin ich wieder an einem Punkt angelangt, an dem ich ihm das nicht so wirklich glauben mag.
    Ich habe ein kleines Progrämmchen geschrieben, dass eigentlich nichts anderes macht als den Namen von <Ordner A> und <Ordner B> zu tauschen.
    Damit lässt sich das Spiel League of Legends von EU auf NA (north American) umstellen und zurück.
    Das passiert in den Zeilen 54-56. Der Code wird ausgeführt und alle Parameter stimmen, das habe ich ausgiebig getestet. Problem an der Kiste: DirMove gibt 0 zurück und der Kopiervorgang wird auch nicht ausgeführt.
    Der eigentlich interessante Teil kommt jetzt. Wenn ich die 3 Zeilen Code in eine Leere .au3 packe, in der Zeile davor $path deklariere und ein Exit in die letzte schreibe läuft der Code einwandfrei durch und die Kopiervorgänge werden anstandslos durchgeführt.
    Da bin ich jetzt wirklich mit meinem Latein am Ende.
    Wenn jemand eine schlaue Erklärung für dieses Verhalten hat bin ich dafür sehr dankbar.

    Gruß
    stro

    Edit: Ich hoffe ich habe den Beitrag jetzt nicht doppelt gepostet. Ansonsten bitte ich ein Mod das Missgeschick zu bereinigen. Danke!

    Originalcode:

    Spoiler anzeigen
    [autoit]

    ;LoL Swapper
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Global $path = ''

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

    #Region ### START Koda GUI section ### Form=
    $frm_Main = GUICreate("LoL Swapper", 194, 66, 774, 500)
    $Group_Control = GUICtrlCreateGroup("Control Panel", 0, 0, 193, 65)
    $Radio_EU = GUICtrlCreateRadio("EU", 8, 16, 41, 17)
    $Radio_NA = GUICtrlCreateRadio("NA", 8, 40, 33, 17)
    $Button_Apply = GUICtrlCreateButton("Apply", 48, 16, 57, 41, $WS_GROUP)
    $Label_Headlineclient = GUICtrlCreateLabel("Current client", 112, 16, 66, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    $Label_CurrentClient = GUICtrlCreateLabel("default", 136, 37, 21, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    #Region ### START UDF ###
    Func GetCurrentClient()
    $fp = FileOpen($path&'\RADS\projects\lol_air_client_config_eu\releases\0.0.0.1\deploy\lol.properties')
    $fr = FileReadLine($fp,2)
    If (StringRight($fr,20) == 'eu.lol.riotgames.com') Then
    Return 'EU'
    ElseIf (StringRight($fr,22) == 'beta.lol.riotgames.com') Then
    Return 'NA'
    Else
    Return False
    EndIf
    EndFunc

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

    Func PostCurrentClient($client)
    Switch $client
    Case 'EU'
    GUICtrlSetState($Radio_EU,$GUI_CHECKED)
    GUICtrlSetData($Label_CurrentClient,'EU')
    Case 'NA'
    GUICtrlSetState($Radio_EU,$GUI_CHECKED)
    GUICtrlSetData($Label_CurrentClient,'NA')
    Case False
    GUICtrlSetData($Label_CurrentClient,'ERROR')
    EndSwitch
    EndFunc

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

    Func SwapCurrentClient($swapto)
    If $swapto == GetCurrentClient() Then
    Return True
    Else
    DirMove($path&'\RADS\projects\lol_air_client_config_eu',$path&'\RADS\projects\lol_air_client_config_eu1')
    DirMove($path&'\RADS\projects\lol_air_client_config_na',$path&'\RADS\projects\lol_air_client_config_eu')
    DirMove($path&'\RADS\projects\lol_air_client_config_eu1',$path&'\RADS\projects\lol_air_client_config_na')
    PostCurrentClient(GetCurrentClient())
    Return True
    EndIf
    EndFunc
    #EndRegion ### END UDF ###

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

    #Region ### START Program initialization ###
    If FileExists("LoL Swapper.ini") Then
    $path = IniRead("LoL Swapper.ini", "General", "Path", "...")
    Else
    Do
    $path = FileSelectFolder("Select League of Legends folder","",4,'C:\Spiele\League of Legends')
    If FileExists($path&'\lol.launcher.exe') Then
    $loop = False
    Else
    MsgBox(48,'Error!','Could not find lol.launcher.exe in selected folder')
    $loop = True
    EndIf
    Until $loop == False
    IniWrite("LoL Swapper.ini", "General", "Path",$path)
    EndIf

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

    PostCurrentClient(GetCurrentClient())
    #EndRegion ### END Program initialization ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button_Apply
    If GUICtrlRead($Radio_EU) == $GUI_CHECKED Then
    MsgBox(0,'','Send EU')
    SwapCurrentClient('EU')
    ElseIf GUICtrlRead($Radio_NA) == $GUI_CHECKED Then
    MsgBox(0,'','Send EU')
    SwapCurrentClient('NA')
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Kopierter Einzelteil

    Spoiler anzeigen
    [autoit]

    $path = 'C:\Spiele\League of Legends'
    DirMove($path&'\RADS\projects\lol_air_client_config_eu',$path&'\RADS\projects\lol_air_client_config_eu1')
    DirMove($path&'\RADS\projects\lol_air_client_config_na',$path&'\RADS\projects\lol_air_client_config_eu')
    DirMove($path&'\RADS\projects\lol_air_client_config_eu1',$path&'\RADS\projects\lol_air_client_config_na')
    Exit

    [/autoit]

    Einmal editiert, zuletzt von stro (27. Juni 2011 um 20:32)

  • Hallo stro,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/Tutorial Sehr hilfreich ist auch das Buch von peethebee .

    und jetzt zu deiner Frage: das Problem liegt in deinem Vergleich. Tasche einmal die func SwapCurrentClient gegen diese:

    [autoit]

    ConsoleWrite("Swap To: " & $swapto & @crlf)
    $sCurrent = GetCurrentClient()
    ConsoleWrite("Current: " & $sCurrent & @crlf)
    If $swapto = $sCurrent Then
    Return True
    Else
    DirMove($path & '\RADS\projects\lol_air_client_config_eu', $path & '\RADS\projects\lol_air_client_config_eu1')
    DirMove($path & '\RADS\projects\lol_air_client_config_na', $path & '\RADS\projects\lol_air_client_config_eu')
    DirMove($path & '\RADS\projects\lol_air_client_config_eu1', $path & '\RADS\projects\lol_air_client_config_na')
    PostCurrentClient(GetCurrentClient())
    Return True
    EndIf
    EndFunc ;==>SwapCurrentClient

    [/autoit]

    dann solltest du in der Scite-Console erkennen wo der Fehler ist.

    mfg autoBert

  • Danke, danke
    leider muss ich noch ein wenig warten bis ich Zeit zum Testen habe, denke das wird heute Nachmittag sein.
    Wenn ich das auf die Schnelle richitg sehe heißt das ich muss mein Ergebniss zum Vergleichen zwingend in einer Variable zwischenspeichern, bevor ich es prüfen kann?!
    Außerdem scheint mir in Zeile 4 deiner Lösung noch ein = zu fehlen. Müsste es nicht == sein statt = wenn ich damit eine If abfrage starte :?:

    lg
    stro

  • Ähm es kan auch sein das ich mich irre, bin bisher noch nicht allzubewandert aber AutoIt ist nicht C++ !
    ein = zeichen reicht vollkommen aus um eine Variable zu Deklarieren.

    Mfg Eistee

    P.s.

    Zitat

    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/Tutorial Sehr hilfreich ist auch das Buch von peethebee .

    Da kann ich nur zustimmen ! das Wiki Tutorial, und das Buch von peethebee helfen dir weiter die allgemeine Funktion zu verstehen. Habe es leider selbst erst vor kurzem gelesen obwohl ich schon seit einiger Zeit AutoIt User bin, hatt mir wirklich sehr weitergeholfen.

  • ein = zeichen reicht vollkommen aus um eine Variable zu Deklarieren.

    Hier gehts doch aber garnicht um eine Werte Zuweisung (erst recht nicht um eine Deklaration), sondern um einen Vergleich. Auch in Autoit gibt es den Vergleichs Operator == , den Unterschied hat PenGuin bereits erklärt. ;)

  • Grande, dass mit dem case sensitivebez. nicht wusste ich auch noch nicht.
    Und ja ich komme ursprünglich aus der C Welt ;)
    Allerdings möchte ich es immer noch verstehen. Wenn ich das doch richtig sehe, ist der einzige Unterschied zu meinem Code, das die If Abfrage nicht direkt mit dem Rückgabewert von GetCurrentClient() verglichen wird, sondern zuvor in $sCurrent zwischengespeichert wird.
    Richtig, falsch?!

    Danke
    stro

  • Das macht Autobert nur damit er die beiden Inhalte zuvor in die Sciteconsole schreiben kann. Dadurch kannst du dann auch nach der Ausführung nachschauen welche Werte die Variablen hatten und so den Fehler eingrenzen. Zum Beispiel könnte dir ein Unterschied in der Groß/Kleinschreibung aufallen, welche du dann mit einem anderen Vergleichsoperator lösen könntest (= anstelle von ==). Das hat Autobert jedenfalls auf Verdacht gemacht, denn testen kann man dein Script ja nicht so wie ich das sehe.

    Der Unterschied ist also nur der Operator, nicht dass er das Ergebnis in eine Variable zwischenspeichert. Das wurde nur gemacht um ordentlich debuggen zu können.
    Sollte es nicht an der Schreibweise liegen, sondern solltest du feststellen, dass in den Variablen andere Werte stehen als erwartet musst du weitersuchen.

  • Das ist ja grade der Oberwitz. Ich habe mir schon vor dem Post hier alle Werte anzeigen lassen (unkomfortabel mit Messageboxen allerdings) und die Codezeile wird devinitiv mit den richtigen Parametern ausgefürt. Einzig der DirMove Befehl gibt 0 zurück => wird aufgerufen, ist aber nicht durchführbar.
    Ich habe nun auch den von AutoBert geschriebenen code getestet und komme zum selben Ergebnis, DirMove gibt 0 zurück und die Operation wird nicht ordnungsgemäß ausgeführt.
    Auch die Pfadangaben habe ich nun unzähligemale überpfrüft. Zusätzlich habe ich den Codeabschnitt nochmals autonom für sich ausgeführt

    Spoiler anzeigen
    [autoit]

    ;Test von AutoBerts Codeabschnitt ohne Programmgerüst
    Global $path = 'C:\Spiele\League of Legends'
    Func GetCurrentClient()
    $fp = FileOpen($path&'\RADS\projects\lol_air_client_config_eu\releases\0.0.0.1\deploy\lol.properties')
    $fr = FileReadLine($fp,2)
    If (StringRight($fr,20) == 'eu.lol.riotgames.com') Then
    Return 'EU'
    ElseIf (StringRight($fr,22) == 'beta.lol.riotgames.com') Then
    Return 'NA'
    Else
    Return False
    EndIf
    EndFunc

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

    Func SwapCurrentClient($swapto)
    ConsoleWrite("Swap To: " & $swapto & @crlf)
    $sCurrent = GetCurrentClient()
    ConsoleWrite("Current: " & $sCurrent & @crlf)

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

    If $swapto = $sCurrent Then
    Return True
    Else
    ConsoleWrite(DirMove($path & '\RADS\projects\lol_air_client_config_eu', $path & '\RADS\projects\lol_air_client_config_eu1')&@CRLF)
    ConsoleWrite(DirMove($path & '\RADS\projects\lol_air_client_config_na', $path & '\RADS\projects\lol_air_client_config_eu')&@CRLF)
    ConsoleWrite(DirMove($path & '\RADS\projects\lol_air_client_config_eu1', $path & '\RADS\projects\lol_air_client_config_na')&@CRLF)
    ConsoleWrite(GetCurrentClient()&@CRLF)
    Return True
    EndIf
    EndFunc ;==>SwapCurrentClient

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

    SwapCurrentClient('NA')
    Exit

    [/autoit]


    Die console spuckt dann dazu folgendes aus => geht nicht

    Spoiler anzeigen


    Wenn ich allerdings wieder alles drum herum wegnehme und nur die nackten Anweisungen verwende funzt alles

    Spoiler anzeigen
    [autoit]

    $path = 'C:\Spiele\League of Legends'
    ConsoleWrite(DirMove($path & '\RADS\projects\lol_air_client_config_eu', $path & '\RADS\projects\lol_air_client_config_eu1')&@CRLF)
    ConsoleWrite(DirMove($path & '\RADS\projects\lol_air_client_config_na', $path & '\RADS\projects\lol_air_client_config_eu')&@CRLF)
    ConsoleWrite(DirMove($path & '\RADS\projects\lol_air_client_config_eu1', $path & '\RADS\projects\lol_air_client_config_na')&@CRLF)
    Exit

    [/autoit]


    Wie die Console es belegt

    Spoiler anzeigen
    Code
    >"C:\Tools\AutoIt\SciTe\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\s7r0\Desktop\Scripts\Portal Tool\test.au3" /autoit3dir "C:\Program Files (x86)\AutoIt3" /UserParams
    +>17:33:41 Starting AutoIt3Wrapper v.2.0.1.24Environment(Language:0407  Keyboard:00000407  OS:WIN_7/Service Pack 1  CPU:X64 OS:X86)
    >Running AU3Check (1.54.19.0)  from:C:\Tools\AutoIt
    +>17:33:41 AU3Check ended.rc:0
    >Running:(3.3.6.1):C:\Tools\AutoIt\autoit3.exe "C:\Users\s7r0\Desktop\Scripts\Portal Tool\test.au3"
    1
    1
    1
    +>17:33:41 AutoIT3.exe ended.rc:0
    >Exit code: 0Time: 1.522


    Ich kann es mir einfach nicht eklären...

  • also mir fällt eines auf kann auch sein das ich irre aber


    Komplett Code -> enthält keine pfadangabe

    Spoiler anzeigen
    [autoit]

    ;LoL Swapper
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Global $path = '' ;kein direkter pfad

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

    #Region ### START Koda GUI section ### Form=
    $frm_Main = GUICreate("LoL Swapper", 194, 66, 774, 500)
    $Group_Control = GUICtrlCreateGroup("Control Panel", 0, 0, 193, 65)
    $Radio_EU = GUICtrlCreateRadio("EU", 8, 16, 41, 17)
    $Radio_NA = GUICtrlCreateRadio("NA", 8, 40, 33, 17)
    $Button_Apply = GUICtrlCreateButton("Apply", 48, 16, 57, 41, $WS_GROUP)
    $Label_Headlineclient = GUICtrlCreateLabel("Current client", 112, 16, 66, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    $Label_CurrentClient = GUICtrlCreateLabel("default", 136, 37, 21, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    #Region ### START UDF ###
    Func GetCurrentClient()
    $fp = FileOpen($path&'\RADS\projects\lol_air_client_config_eu\releases\0.0.0.1\deploy\lol.properties')
    $fr = FileReadLine($fp,2)
    If (StringRight($fr,20) == 'eu.lol.riotgames.com') Then
    Return 'EU'
    ElseIf (StringRight($fr,22) == 'beta.lol.riotgames.com') Then
    Return 'NA'
    Else
    Return False
    EndIf
    EndFunc

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

    Func PostCurrentClient($client)
    Switch $client
    Case 'EU'
    GUICtrlSetState($Radio_EU,$GUI_CHECKED)
    GUICtrlSetData($Label_CurrentClient,'EU')
    Case 'NA'
    GUICtrlSetState($Radio_EU,$GUI_CHECKED)
    GUICtrlSetData($Label_CurrentClient,'NA')
    Case False
    GUICtrlSetData($Label_CurrentClient,'ERROR')
    EndSwitch
    EndFunc

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

    Func SwapCurrentClient($swapto)
    If $swapto == GetCurrentClient() Then
    Return True
    Else
    DirMove($path&'\RADS\projects\lol_air_client_config_eu',$path&'\RADS\projects\lol_air_client_config_eu1')
    DirMove($path&'\RADS\projects\lol_air_client_config_na',$path&'\RADS\projects\lol_air_client_config_eu')
    DirMove($path&'\RADS\projects\lol_air_client_config_eu1',$path&'\RADS\projects\lol_air_client_config_na')
    PostCurrentClient(GetCurrentClient())
    Return True
    EndIf
    EndFunc
    #EndRegion ### END UDF ###

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

    #Region ### START Program initialization ###
    If FileExists("LoL Swapper.ini") Then
    $path = IniRead("LoL Swapper.ini", "General", "Path", "...")
    Else
    Do
    $path = FileSelectFolder("Select League of Legends folder","",4,'C:\Spiele\League of Legends')
    If FileExists($path&'\lol.launcher.exe') Then
    $loop = False
    Else
    MsgBox(48,'Error!','Could not find lol.launcher.exe in selected folder')
    $loop = True
    EndIf
    Until $loop == False
    IniWrite("LoL Swapper.ini", "General", "Path",$path)
    EndIf

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

    PostCurrentClient(GetCurrentClient())
    #EndRegion ### END Program initialization ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button_Apply
    If GUICtrlRead($Radio_EU) == $GUI_CHECKED Then
    MsgBox(0,'','Send EU')
    SwapCurrentClient('EU')
    ElseIf GUICtrlRead($Radio_NA) == $GUI_CHECKED Then
    MsgBox(0,'','Send EU')
    SwapCurrentClient('NA')
    EndIf
    EndSwitch
    WEnd

    [/autoit]


    kurzcode : -> hatt direkten Pfad

    Spoiler anzeigen
    [autoit]

    $path = 'C:\Spiele\League of Legends' ; Direkter Pfad
    DirMove($path&'\RADS\projects\lol_air_client_config_eu',$path&'\RADS\projects\lol_air_client_config_eu1')
    DirMove($path&'\RADS\projects\lol_air_client_config_na',$path&'\RADS\projects\lol_air_client_config_eu')
    DirMove($path&'\RADS\projects\lol_air_client_config_eu1',$path&'\RADS\projects\lol_air_client_config_na')
    Exit

    [/autoit]

    mfg Eistee

  • Ich vermute mal es liegt daran, dass du fileopen und fileread in einem der umzubenenden Verzeichnisse benutzt, danach aber kein fileclose anwendest. Aus diesem Grund sind noch Dateien geöffnet und Windows wird den Zugriff auf die Ordner verweigern.

    Versuchs mal so:

    [autoit]


    Func GetCurrentClient()
    $fp = FileOpen($path&'\RADS\projects\lol_air_client_config_eu\releases\0.0.0.1\deploy\lol.properties')
    $fr = FileReadLine($fp,2)
    fileclose($fp)

    [/autoit]
  • Eistee: Der Pfad wird über die ini eingelesen, Falls keine Ini vorhanden oder dort leer mit FileSelectFolder ermittelt.

    misterspeed: Volltreffer, dies habe ich gar nicht gesehen.

    stro: es wurde bereits erklärt aber nochmal das ich zuerst einer Variable zuweise ist wegen dem "Debug-Versuch" mit ConsoleWrite. Hier einmal das komplette Skript, da ich noch ein paar andere Änderungen machen würde:

    Spoiler anzeigen
    [autoit]

    ;LoL Swapper
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    Global $path = ''

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

    #region ### START Koda GUI section ### Form=
    $frm_Main = GUICreate("LoL Swapper", 194, 66, 774, 500)
    $Group_Control = GUICtrlCreateGroup("Control Panel", 0, 0, 193, 65)
    $Radio_EU = GUICtrlCreateRadio("EU", 8, 16, 41, 17)
    $Radio_NA = GUICtrlCreateRadio("NA", 8, 40, 33, 17)
    $Button_Apply = GUICtrlCreateButton("Apply", 48, 16, 57, 41, $WS_GROUP)
    $Label_Headlineclient = GUICtrlCreateLabel("Current client", 112, 16, 66, 17)
    GUICtrlSetFont(-1, 8, 400, 4, "MS Sans Serif")
    $Label_CurrentClient = GUICtrlCreateLabel("default", 136, 37, 21, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    #region ### START Program initialization ###
    If FileExists("LoL Swapper.ini") Then
    $path = IniRead("LoL Swapper.ini", "General", "Path", "...")
    Else
    Do
    $path = FileSelectFolder("Select League of Legends folder", "", 4, 'C:\Spiele\League of Legends')
    if @error Then Exit ;eingefügt ddamit der User die Chance hat das Programm zu beenden
    If FileExists($path & '\lol.launcher.exe') Then
    $loop = False
    Else
    MsgBox(48, 'Error!', 'Could not find lol.launcher.exe in selected folder')
    $loop = True
    EndIf
    Until $loop == False
    IniWrite("LoL Swapper.ini", "General", "Path", $path)
    EndIf
    PostCurrentClient(GetCurrentClient())
    #endregion ### START Program initialization ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button_Apply
    If BitAND(GUICtrlRead($Radio_EU), $GUI_CHECKED) Then ;geändert siehe dazu Hilfe GuiCtrRead Bei Checkboxen und Radiobuttons können mehrere Statuse als $GUI_FOCUS und $GUI_CHECKED zurückgegeben werden. So ist z. B. BitAnd(GUICtrlRead($Item),$GUI_CHECKED) zu verwenden um zu sehen ob ein Control markiert ist.
    MsgBox(0, '', 'Send EU')
    SwapCurrentClient('EU')
    ElseIf BitAND(GUICtrlRead($Radio_NA), $GUI_CHECKED) Then ;geändert siehe dazu Hilfe GuiCtrRead
    MsgBox(0, '', 'Send NA')
    SwapCurrentClient('NA')
    EndIf
    EndSwitch
    WEnd

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

    #region ### START UDF ###
    Func GetCurrentClient()
    $fp = FileOpen($path & '\RADS\projects\lol_air_client_config_eu\releases\0.0.0.1\deploy\lol.properties')
    $fr = FileReadLine($fp, 2)
    FileClose($fp)
    If (StringRight($fr, 20) == 'eu.lol.riotgames.com') Then
    Return 'EU'
    ElseIf (StringRight($fr, 22) == 'beta.lol.riotgames.com') Then
    Return 'NA'
    Else
    Return False
    EndIf
    EndFunc ;==>GetCurrentClient

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

    Func PostCurrentClient($client)
    Switch $client
    Case 'EU'
    GUICtrlSetState($Radio_EU, $GUI_CHECKED)
    GUICtrlSetData($Label_CurrentClient, 'EU')
    Case 'NA'
    GUICtrlSetState($Radio_EU, $GUI_CHECKED)
    GUICtrlSetData($Label_CurrentClient, 'NA')
    Case False
    GUICtrlSetData($Label_CurrentClient, 'ERROR')
    EndSwitch
    EndFunc ;==>PostCurrentClient

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

    Func SwapCurrentClient($swapto)
    ConsoleWrite("Swap To: " & $swapto & @crlf) ;Kosoloeausgabe nur zu Kontrollzwecken kann wenn Skript funktioniert entfernt werden
    $sCurrent = GetCurrentClient()
    ConsoleWrite("Current: " & $sCurrent & @crlf) ;Kosoloeausgabe nur zu Kontrollzwecken kann wenn Skript funktioniert entfernt werden
    If $swapto = $sCurrent Then
    Return True
    Else
    ConsoleWrite("Pfad: " & $path & @crlf) ;Kosoloeausgabe nur zu Kontrollzwecken kann wenn Skript funktioniert entfernt werden
    DirMove($path & '\RADS\projects\lol_air_client_config_eu', $path & '\RADS\projects\lol_air_client_config_eu1')
    DirMove($path & '\RADS\projects\lol_air_client_config_na', $path & '\RADS\projects\lol_air_client_config_eu')
    DirMove($path & '\RADS\projects\lol_air_client_config_eu1', $path & '\RADS\projects\lol_air_client_config_na')
    PostCurrentClient(GetCurrentClient())
    Return True
    EndIf
    EndFunc ;==>SwapCurrentClient
    #endregion ### START UDF ###

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

    siehe Bemerkungen im Skript

    mfg autoBert

  • Danke für das gute Auge misterspeed, da hätten wir ja mal nen typischen Anfängerfehler gefunden. Profis nennen das dann Flüchtigkeitsfehler ;)
    Das Script von autoBert werde ich mir später auch noch anschauen.
    Thread wär dann hiermit als gelöst zu betrachten.

    Vielen Dank
    stro