Hallo,
habe vor einer Woche mit autoit angefangen und komme gerade nicht mehr weiter
Ich habe ein Programm gescriptet das zuerst ein Programm(A) öffnet, sich einloggt und dann ein anderes Programm(B)öffnet und sich einloggt.
Programm(A)ist immer das gleiche nur mit unterschiedlichen logindaten (die der Benutzer in der config.ini eingibt)
Programm(B)hat immer einen anderen ".exe" namen, den der Benutzer festlegen muss. (Die logindaten sind immer die gleichen und werden auch in der config.ini festgelegt.
Soweit so gut, funktioniert auch perfekt. Aber wenn man 8 verschiedene instanzen starten will, muss man 8x das Programm starten. Das soll geändert werden.
Also mein Problem ist es jetzt das ganze in eine mega schleife zu packen und dann auch immer die richtigen einstellungen aus der cfg ini zu nehmen.
Es kann ja sein das jemand mehr als einen Account hat
Hier mal der code damit es besser nachvollziehbar ist:
[autoit];~ ;
;~ ; AutoIt Version: 3.0
;~ ; Language: Deutsch
;~ ; Platform: Server2008
;~ ; Author: Sp4wnY
;~ ; Script Function:
;~ ; multylogintool
;~ ;
;/////variblen////////
$login = IniRead("config.ini","WoWAccount1","AccName",False)
$PW = INIRead("config.ini","WoWAccount1","Password",False)
$Server = INIRead("config.ini","WoWAccount1","Realmname",False)
$char = INIRead("config.ini","WoWAccount1","Charnumber",False)
$exe = INIRead("config.ini","xdAccount1","XDexe",False)
$SYlogin = INIRead("config.ini","xdAccount1","SYlogin",False)
$SYPW = INIRead("config.ini","xdAccount1","SYpass",False)
$SYprofile = INIRead("config.ini","xdAccount1","SYprofile",False)
$Herb = INIRead("config.ini","xdAccount1","Herb",False)
$Mineral = INIRead("config.ini","xdAccount1","Mineral",False)
$flag = 0
;///WoW ordner finden////
$regread = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Blizzard Entertainment\World of Warcraft", "Installpath")
;//unnötig, kommt weg...
;if $regread == 1 OR $regread == 2 OR $regread == 3 OR $regread == -1 OR $regread == -2 OR $regread == "" Then
; $Pfad = FileSelectFolder("WoWpfad angeben","C:\")
;if FileExists($pfad & "\wow.exe") Then
; RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Blizzard Entertainment\World of Warcraft","Installpath","REG_SZ",$pfad)
;Else
; MSGbox(0,"Error","Falscher Pfad angeben. WoW.exe konnte nicht gefunden werden")
; exit
; EndIf
;EndIf
;////Inifehlerchecken////
if $login==False then
MsgBox(0,"Error","Loginname nicht gefunden")
$flag = 1
EndIf
if $PW==False then
MsgBox(0,"Error","Passwort nicht gefunden")
$flag = 1
EndIf
if $Server==False then
MsgBox(0,"Error","Realm nicht gefunden")
$flag = 1
EndIf
if $char==False then
MsgBox(0,"Error","Charakter nicht gefunden")
$flag = 1
EndIf
if $exe==False then
MsgBox(0,"Error","xd-Exe nicht gefunden")
$flag = 1
EndIf
if $SYlogin ==False then
MsgBox(0,"Error","Logindaten von SY fehlen")
$flag = 1
EndIf
if $Herb ==False then
MsgBox(0,"Error","Herb Einstellung fehlt")
$flag = 1
EndIf
if $flag = 1 then Exit
;//////configdatei edit////
$id=FileOpen($regread & "\WTF\Config.wtf",1)
FileWriteLine($id,"SET realmName"&" "& $server)
FileWriteLine($id,"SET lastCharacterIndex"&" "& $char)
FileClose($id)
;/////wowstarten/////
Run($regread & "/wow.exe")
wait(100)
WinWaitActive("World of Warcraft")
sleep(1000)
WinActivate("World of Warcraft")
Sleep(6550)
WinMove("World of Warcraft", "", 0, 0, 328, 267)
WinSetTitle("World of Warcraft", "", $login)
Send($login & "{TAB}" & $PW & "{ENTER}")
sleep(7000)
Send("{ENTER}")
Sleep(10000)
;////B starten///
Run($exe)
sleep(1000)
$exe = StringReplace( $exe, ".exe", "" )
WinActivate("SY:"&" "&$exe)
sleep(1000)
Send("{TAB}"&$SYlogin & "{TAB}" &$SYPW & "{TAB}"&"{ENTER}")
sleep(2000)
Send("{TAB}"&"{RIGHT}"&"{TAB 2}"&"{ENTER}"&"{UP}"&$SYprofile&"{TAB 9}"&"{RIGHT}")
If $Herb = "FALSE" Then Send("{TAB 2}"&"{SPACE}")
If $Mineral = "FALSE" Then Send("{TAB 3}"&"{SPACE}")
WinActivate($exe)
Send("{TAB 2}"&"{ENTER}")
WinSetState($exe, "", @SW_MINIMIZE)
und die config.ini: