Diablo III - Autologin-Script durch Powershell

05/30/2012 23:18 wilu1981#1
Hi,

es gibt ja bereits verschiedene Tools, die das Autologin erlauben. Da ich aber bei solchen Tools immer vorsichtig bin, da meine Zugangsdaten dort abgelegt werden, habe ich ein kleines eigenes Autologin-Script umgebastelt, welches ich gerne mit Euch teile. Ich verwende das Skript für WoW und D3.

Was ihr für das Skript benötigt:
1. Windows 7 oder die PowerShell
Unter Windows7 ist die PS direkt mitinstalliert
Unter XP einfach hier beziehen: [Only registered and activated users can see links. Click Here To Register...]

2. Die WASP from [Only registered and activated users can see links. Click Here To Register...]

3. Windows PS erlauben, Skripte auszuführen.
* Start -> Ausführen -> powershell [Enter]
* In der PS einfach folgendes ausführen: Set-ExecutionPolicy RemoteSigned

(mehr Details unter: [Only registered and activated users can see links. Click Here To Register...])

4. Accountnamen nicht speichern lassen im D3Client. Ansonsten ist das erste Eingabefeld das PW.
Oder das unten stehende Script anpassen:
Code:
vorher: Select-Window $process | Send-Keys "$account`t$password`n"
nachher: Select-Window $process | Send-Keys "$password`n"
Hier findet ihr das Script zum Abtippen oder kopieren: [Only registered and activated users can see links. Click Here To Register...]

Code:
# AutostartDiablo3 by wilu1981
#
# ATTENTION:
#   THIS FILE CONTAINS YOUR BATTLE.NET ACCOUNT INFORMATION.
#
# How to setup and use:
# 1. Install WASP from https://wasp.codeplex.com
# 2. Copy content from ZIP file to
#     C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
# 3. Create shortcut (optional)
#       powershell.exe "C:\Games\AutostartDiablo3.ps1"
#
 
Import-Module WASP
# Location to Diablo3 executable
$executable     = 'C:/Games/Diablo III/Diablo III.exe'
# Time to wait until D3 window is loaded (Change it, when it takes longer on your machine)
$sleepInit      = 5
 
function StartDiablo
{
        param ([string]$account, [string]$password)
        $D3Dir = (Get-ChildItem $executable).DirectoryName
       
        $processStartInfo = New-Object System.Diagnostics.ProcessStartInfo
        $processStartInfo.FileName = (Get-Command $executable).Definition
        $processStartInfo.WorkingDirectory = $D3Dir
        $processStartInfo.Arguments = '-launch'
        $processStartInfo.UseShellExecute = $false
 
        echo "Launching D3 $account"
        $process = [System.Diagnostics.Process]::Start($processStartInfo)
       
        # Wait some time and let the D3 window appear
        Sleep $sleepInit
        # Send account and login keys to window
        Select-Window $process | Send-Keys "$account`t$password`n"
}
 
 
# SET YOUR BATTLE.NET CREDENCIALS
#
# Your BNET_ACCOUNT name
# Your BNET_ACCOUNT PASSWORD
#
StartDiablo "BNET_ACCOUNT_NAME" "PASSWORD"
05/31/2012 17:32 nooblike#2
Hallo wilu1981,

anscheinend weiß keiner deine Arbeit zu schätzen, obwohl deine Methode um einiges sicherer ist, als die ganzen Alternativen.

Bedanke mich dafür auch wenn ich es nicht nutze : )))
05/31/2012 17:49 BlayZin#3
Ist so ein Skript ein Risiko? Kann man bei sowas gebannt werden? Sry hab nicht so die Erfahrung mit sowas.
05/31/2012 17:52 nooblike#4
Quote:
Originally Posted by BlayZin View Post
Ist so ein Skript ein Risiko? Kann man bei sowas gebannt werden? Sry hab nicht so die Erfahrung mit sowas.
Nein ist sicher
05/31/2012 17:59 Pixel™#5
Quote:
Originally Posted by BlayZin View Post
Ist so ein Skript ein Risiko? Kann man bei sowas gebannt werden? Sry hab nicht so die Erfahrung mit sowas.
aber wenn du pech hast hat er sein script so gebaut, dass deine
login daten ihm zugesendet werden =D Lasst lieber einen profi
der trusted ist drüberschauen, so mach ich mir da zu große sorgen,
da ich mich dabei selbst nicht sehr gut auskenne.
05/31/2012 18:01 nooblike#6
Quote:
Originally Posted by .Slyze™ View Post
aber wenn du pech hast hat er sein script so gebaut, dass deine
login daten ihm zugesendet werden =D Lasst lieber einen profi
der trusted ist drüberschauen, so mach ich mir da zu große sorgen,
da ich mich dabei selbst nicht sehr gut auskenne.
Die Source ist doch zu sehen.
Es werden keine Daten verschickt :S
Auch als "Leie" mit ein wenig Verständnis sieht man genau das alles "sauber" ist.
05/31/2012 19:53 tortiator#7
jetzt gehts aber nur einmal , es kommt fehler 37 und danach nichts mehr...
05/31/2012 23:38 wilu1981#8
Korrekt, da ich nicht viel von Massen-Login-Versuchen halte. Das Skript soll nur der Bequemlichkeit dienen mit einem Doppelklick direkt ins Spiel zu kommen :)

- Ohne Launcher
- Ohne Eingabe der Passwörter
06/01/2012 17:43 Fynnra#9
Hmm, das Script schreibt bei mir auch das PW ins Namensfeld.
Ändert sich nichts, wenn ich an der Sleeptime rüttel :(
06/02/2012 12:17 wilu1981#10
Quote:
Originally Posted by Fynnra View Post
Hmm, das Script schreibt bei mir auch das PW ins Namensfeld.
Ändert sich nichts, wenn ich an der Sleeptime rüttel :(
Account Namen speichern aushacken. Selbst einloggen, danach sollte es gehen. Wenn der Accountname bereits gespeichert ist, ist das erste feld das PW feld. Dort trägt er dann die Mail ein, tabt und kommt so ins Namensfeld.

Alternativ kannst du das Skript anpassen:
Code:
Select-Window $process | Send-Keys "$password`n"
So sendet er nur das PW ans Spiel
06/02/2012 13:06 Fynnra#11
Vielen Dank! Nun läufts einwandfrei!
06/02/2012 13:49 wilu1981#12
Quote:
Originally Posted by Fynnra View Post
Vielen Dank! Nun läufts einwandfrei!
Gerne :)
06/02/2012 16:56 Fynnra#13
Hab nur noch ein Problem mit Powershell selbst.
Ich kann das Script per Direktaufruf starten, aber bei Gebrauch eines Shortcuts öffnet sich für eine halbe Sekunde die Powershell mit rotem Fehlertext und verschwindet.
Würde mir halt gerne einen Shortcut für die Taskbar machen :)
06/02/2012 17:40 wilu1981#14
bei mir sieht der shortcut so aus:
Code:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "E:\Games\D3Launch.ps1"
mit dem befehl
Code:
powershell.exe -noexit "E:\Games\D3Launch.ps1"
bleibt das fenster offen und du siehst die fehlermeldung