Thursday, May 24, 2012

Diablo III Launcher Lazyness

Like so many others (6 million at least), I bought a copy of Diablo III at the launch date. Finally after years of waiting in agony, we can once again slay the daemons of hell.

However, this post is not about the game itself. For game critiques, there are plenty of whining people on the internet (e.g. the BattleNet Forums). So, you won’t find complaints about gameplay or graphics here. Actually, I like the game very much so far…

Rather, this post discusses a small Blizzard-annoyance for which I created a simple solution. For some obscure reason, Blizzard decided that launching Diablo III pops up the famous Blizzard Launcher. Famous for WoW and SC2 players, not so famous for Diablo II fans. I know that this launcher isn’t just a fancy picture with a play button on it and that is performs some consistency checks and makes sure that the latest patches are installed. In fact, I don’t care what it does do or does not do. The annoyance is that I have to click the Play button.

So starting a session of Diablo III involves 2 clicks, instead of one? Yes, in contrast to actually playing Diablo games with millions of mouse clicks, this single extra click won’t hurt :p. Yet, I find it annoying.

Enough complaints, here’s a solution for those who agree. I created a very simple AutoIt script that launches the launcher and clicks the play button for you. Call me lazy…

Here’s the script:
 ; Script Function:  
 ;  Presses the stupid play button.  
 ;  
 If ProcessExists("Blizzard Launcher.exe") = 0 Then  
   Run("Diablo III Launcher.exe")  
 EndIf  
 If WinWaitActive("[CLASS:QWidget; TITLE:Diablo III]", "", 5) Then  
   Sleep(1500)  
   AutoItSetOption("MouseCoordMode", 0)  
   MouseClick("left", 640, 480)  
 EndIf  
You can compile this as an executable and drop it in the Diablo III install folder. It assumes the launcher is in the same folder as the script.


Note to the autistic readers: This script is far from perfect. I don't know what happens when the play button changes in a "format c:" or if you are touching the mouse while executing this script. So use as is, or improve.


Note to smarter people: I actually hope for someone to point out that it might be possible to add an argument to the Blizzard Launcher that makes the game start automatically... However, I don't know of such an argument to pass.