WoW & HB Autostart + Login (Scripts)

01/25/2014 08:44 Keleg#1
Ich habe nun etwa 6 Stunden damit verbracht mich durch Googel zu wühlen. Ich habe nicht viel Ahnung von solchen Scripts aber ich habe es geschafft und möchte es gerne mit euch teilen.

Das ganze ist nun angepasst auf ein Full HD Display! Ebenfalls ist mein Rechner recht schnell, es kann sein dass ihr die Zeiten abändern müsst.

Falls ihr World of Warcraft z.B. nur 2x Starten wollt, entfernt in der Batch Datei einfach den dritten "WoW3" abschnitt. Und ganz unten die dritte HB.exe und den dazu gehörigen timeout. Den Batch teil speichert ihr als NAME.BAT ab.

Sollte das ganze zu schnell für euren PC ablaufen, könnt ihr die Zeiten zwischen den Schritten an den "timeout /T 14 /nobreak" Stellen ändern.

Vergesst bitte nicht den Pfad wie z.B. "D:\Spiele\World of Warcraft\Wow.exe" dem Pfad von eurem WoW und HB anzupassen.

Wenn ihr mehrere Bots laufen lassen wollt Editiert in der VBS eure Accountdaten (EMAIL & Passwort), speichert sie als "WoW1.vbs", WoW2.vbs" & "WoW3.vbs" ab. Alle Dateien in den selben Ordner!

In den AutoIT Scripts "au3" könnt ihr die Position der Fenster einstellen, momment sind sie auf einen Full HD Monitor angepasst. Speichert diese als "WoW1.au3", "WoW2.au3", "WoW3.au3". Ladet euch die "AutoIt3.exe" runter und schiebt sie mit all den anderen Sachen in einen Ordner.

1. Teil - Batch

Code:
@echo off
echo -----------------------
echo #######################
echo # Starte "WoW1"       #
echo #######################
echo -----------------------
start "WoW1" "D:\Spiele\World of Warcraft\Wow.exe"
timeout /T 14 /nobreak
start "D:\Spiele\World of Warcraft\AutoIt3.exe" WoW1.au3
echo #######################
echo # Logge in "WoW1" ein #
echo #######################
echo -----------------------
pushd %~dp0
cscript WoW1.vbs
timeout /T 18 /nobreak

echo #######################
echo # Starte "WoW2"       #
echo #######################
echo -----------------------
start "WoW2" "D:\Spiele\World of Warcraft\Wow.exe"
timeout /T 14 /nobreak
start "D:\Spiele\World of Warcraft\AutoIt3.exe" WoW2.au3
echo #######################
echo # Logge in "WoW2" ein #
echo #######################
echo -----------------------
cscript WoW2.vbs
ping /n 18 localhost >nul

echo #######################
echo # Starte "WoW3"       #
echo #######################
echo -----------------------
start "WoW2" "D:\Spiele\World of Warcraft\Wow.exe"
timeout /T 14 /nobreak
start "D:\Spiele\World of Warcraft\AutoIt3.exe" WoW3.au3
echo #######################
echo # Logge in "WoW3" ein #
echo #######################
echo -----------------------
cscript WoW3.vbs
timeout /T 18 /nobreak

echo #######################
echo # Starte "Bot" 3x     #
echo #######################
echo -----------------------
start "HB1" "D:\Programme\HonorBuddy\Honorbuddy.exe"
timeout /T 3 /nobreak
start "HB2" "D:\Programme\HonorBuddy\Honorbuddy.exe"
timeout /T 3 /nobreak
start "HB3" "D:\Programme\HonorBuddy\Honorbuddy.exe"
timeout /T 3 /nobreak
exit

2. Teil - VBS

Code:
set WshShell = WScript.CreateObject("WScript.Shell")
wscript.sleep 1000
wshshell.sendkeys "EMAIL"
wscript.sleep 1000
wshshell.sendkeys "{TAB}"
wscript.sleep 1000
wshshell.sendkeys "PASSWORT"
wscript.sleep 1000
wshshell.sendkeys "{enter}"
wscript.sleep 7000
wshshell.sendkeys "{enter}"

3 Teil - AutoIT

WoW1.au3

Code:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.10.2
 Author:         Keleg

 Script Function:
	Fenster positionieren

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



WinSetTitle("World of Warcraft", "", "WoW1")

WinActivate ( "WoW1" , "")

$windowTitleContains = "WoW1"

Opt("WinTitleMatchMode", 3)

$winX = 0
$winY = 0

$winWidth = 637 - $winX*2
$winHeight = 511 - $winY

$var = WinList()

For $i = 1 to $var[0][0]
  $windowTitle = $var[$i][0]
  $containsTitle = StringInStr($windowTitle,$windowTitleContains)
  If $windowTitle <> "" AND IsVisible($windowTitle) AND 0 <> $containsTitle Then
    ResizeWindowWithExactTitle($windowTitle)
  EndIf
Next

Exit

Func IsVisible($handle)
  If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
  Else
    Return 0
  EndIf
EndFunc

Func ResizeWindowWithExactTitle($winTitle)
    If WinExists($winTitle) Then
        WinMove($winTitle, "", $winX, $winY, $winWidth, $winHeight)
    EndIf
 EndFunc

 Exit

WoW2.au3

Code:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.10.2
 Author:         Keleg

 Script Function:
	Fenster positionieren

#ce ----------------------------------------------------------------------------
WinSetTitle("World of Warcraft", "", "WoW2")

WinActivate ( "WoW2" , "")

$windowTitleContains = "WoW2"

Opt("WinTitleMatchMode", 3)

$winX = 637
$winY = 0

$winWidth = 1274 - $winX
$winHeight = 511 - $winY

$var = WinList()

For $i = 1 to $var[0][0]
  $windowTitle = $var[$i][0]
  $containsTitle = StringInStr($windowTitle,$windowTitleContains)
  If $windowTitle <> "" AND IsVisible($windowTitle) AND 0 <> $containsTitle Then
    ResizeWindowWithExactTitle($windowTitle)
  EndIf
Next

Exit

Func IsVisible($handle)
  If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
  Else
    Return 0
  EndIf
EndFunc

Func ResizeWindowWithExactTitle($winTitle)
    If WinExists($winTitle) Then
        WinMove($winTitle, "", $winX, $winY, $winWidth, $winHeight)
    EndIf
 EndFunc

 Exit

WoW3.au3

Code:
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.10.2
 Author:         Keleg

 Script Function:
	Fenster positionieren

#ce ----------------------------------------------------------------------------
WinSetTitle("World of Warcraft", "", "WoW3")

WinActivate ( "WoW3" , "")

$windowTitleContains = "WoW3"

Opt("WinTitleMatchMode", 3)

$winX = 1274
$winY = 0

$winWidth = 1911- $winX
$winHeight = 511 - $winY

$var = WinList()

For $i = 1 to $var[0][0]
  $windowTitle = $var[$i][0]
  $containsTitle = StringInStr($windowTitle,$windowTitleContains)
  If $windowTitle <> "" AND IsVisible($windowTitle) AND 0 <> $containsTitle Then
    ResizeWindowWithExactTitle($windowTitle)
  EndIf
Next

Exit

Func IsVisible($handle)
  If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
  Else
    Return 0
  EndIf
EndFunc

Func ResizeWindowWithExactTitle($winTitle)
    If WinExists($winTitle) Then
        WinMove($winTitle, "", $winX, $winY, $winWidth, $winHeight)
    EndIf
 EndFunc

 Exit
[Only registered and activated users can see links. Click Here To Register...]
01/25/2014 14:19 Crossside#2
Verbesserungsvorschlag :

Die Batch datei weglassen, und hierfür nen eigenes Autoit Script nutzen, und den Path Dynamisch generieren. So muss man nicht alle Pfade selbst Manuell anpassen (zb wenn man nen andern Pc nutzt, wow wo anders installiert hat etc.)

Noch größerer Verbesserungsvorschlag:

Alles in EINER Autoit verbinden und laufen lassen, so das du nicht die ganzen WoW1,WoW2,WoW3 usw brauchst.. sollte aufgeräumter wirken dann^^
Wenn du das ganze noch in ner Exe verbindest sollte es eigendlich ganz gut sein.

Alternativ könnte man das ganze natürlich noch schön in C++ machen und dann noch ne hübsche Gui zum Configurieren und..hachja *schwärm* - bin ich aber zu Faul für des jetzt zu Coden,auch wenn ich Bock drauf hätte :D


grüße
01/26/2014 07:18 Keleg#3
habe das hier nun mit Mühe und not zusammen geschustert. hab eig. keine Ahnung wie ich das umsetzen soll.
01/26/2014 11:25 Atomix74#4
Jeder fängt mal klein an, schön umgesetzt und man sieht klar wo was gemacht wird.
Was mich etwas stören würde, weis aber nicht ob das überhaupt mit autoit / vbs umsetzbar ist, ist das die Accountdaten im Klartext gespeichert werden und einfach eingesehen werden könne. Ggf. ein offener Punkt falls du mal von einem bösen Buben Teamviewer Support o.ä. beziehst.