MEmu := "BlueStacks"
MEmuV := "v0.7.10.869"
MURL := ["http://www.bluestacks.com/"]
MAuthor := ["djvj"]
MVersion := "2.0.1"
MCRC := "A606F2C1"
iCRC := "79D03371"
MID := "635038268876501094"
MSystem := ["Android"]
;----------------------------------------------------------------------------
; Notes:
; Set your Emu_Path to "PATH\HD-Frontend.exe" where bluestacks is installed, something like this: C:\Program Files (x86)\BlueStacks\HD-Frontend.exe
; Rom_Extension should be set to lnk
; Each game you install in BlueStacks will have a lnk shortcut made in your C:\ProgramData\BlueStacks\UserData\Library\My Apps
; Rom_Path should point to this Library folder
; If the HD-Agent does not quit after you exit a game, the next time you launch you will be back in the same Android Virtual Environment and the previous game will have crashed
; Due to this, some games may not save settings when you quit. It is advised you close the game in Android by normal means, then exit.
; BlueStacks stores its config in the registry @ HKEY_LOCAL_MACHINE\SOFTWARE\BlueStacks
;----------------------------------------------------------------------------
StartModule()
BezelGUI()
FadeInStart()
primaryExe := new Process(emuPath . "\" . executable) ; instantiate emulator executable object
bsLnk := new Process(romPath . "\" . romName . romExtension)
emuQuitExe := new Process(emuPath . "\HD-Quit.exe")
emuPrimaryWindow := new Window(new WindowTitle("BlueStacks App Player","")) ; instantiate primary emulator window object
hideEmuObj := Object(emuPrimaryWindow,1)
Fullscreen := moduleIni.Read("settings", "Fullscreen","true",,1)
userWidth := moduleIni.Read("settings", "Width","1600",,1)
emuHeight := moduleIni.Read("settings", "Height","900",,1)
WindowedWidth := moduleIni.Read("Settings", "WindowedWidth","750",,1)
WindowedHeight := moduleIni.Read("Settings", "WindowedHeight","450",,1)
BezelStart("FixResMode")
regLoc := "SOFTWARE\BlueStacks\Guests\Android\FrameBuffer\0"
currentFullScreen := Registry.Read("HKLM",regLoc,"FullScreen")
If (Fullscreen != "true" And currentFullScreen = 1)
Registry.Write("REG_DWORD","HKLM",regLoc,"FullScreen",0)
Else If (Fullscreen = "true" And currentFullScreen = 0)
Registry.Write("REG_DWORD","HKLM",regLoc,"FullScreen",1)
If bezelPath { ; Setting windowed mode resolution
userWidth := WindowedWidth
userHeight := WindowedHeight
}
currentWidth := Registry.Read("HKLM",regLoc,"Width") ; update width if desired width does not match current
If (userWidth != currentWidth and userWidth != "")
Registry.Write("REG_DWORD","HKLM",regLoc,"Width",userWidth)
currentHeight := Registry.Read("HKLM",regLoc,"Height") ; update height if desired width does not match current
If (userHeight != currentHeight and userHeight != "")
Registry.Write("REG_DWORD","HKLM",regLoc,"Height",userHeight)
; This makes sure there is no warning on exit
bsCloseWarning := Registry.Read("HKLM","SOFTWARE\BlueStacks\BlueStacksGameManager\Preferences","BlueStacksCloseWarning")
If (bsCloseWarning = 0)
Registry.Write("REG_DWORD","HKLM","SOFTWARE\BlueStacks\BlueStacksGameManager\Preferences","BlueStacksCloseWarning",0)
; This makes sure TV window doesn't show
bsTVWindow := Registry.Read("HKLM","SOFTWARE\BlueStacks\BlueStacksGameManager\Preferences","HideBTVWindow")
If (bsTVWindow != 1)
Registry.Write("REG_DWORD","HKLM","SOFTWARE\BlueStacks\BlueStacksGameManager\Preferences","HideBTVWindow",1)
HideAppStart(hideEmuObj,hideEmu)
bsLnk.Run()
emuPrimaryWindow.Wait()
emuPrimaryWindow.WaitActive()
BezelDraw()
HideAppEnd(hideEmuObj,hideEmu)
FadeInExit()
emuPrimaryWindow.WaitClose()
TimerUtils.Sleep(100)
emuQuitExe.Run() ; this is the provided exe to quit BlueStacks Agent
TrayRefresh() ; attempts to prevent dead icons from building up on your tray
BezelExit()
FadeOutExit()
ExitModule()
TrayRefresh() {
Static WM_MOUSEMOVE := 0x200
ControlGetPos,,,w,h,ToolbarWindow321, AHK_class Shell_TrayWnd
width:=w, hight:=h
while ((h:=h-5)>0 and w:=width)
while ((w:=w-5)>0)
PostMessage, WM_MOUSEMOVE,0, ((hight-h) >> 16)+width-w, ToolbarWindow321, AHK_class Shell_TrayWnd
}
CloseProcess:
FadeOutStart()
emuPrimaryWindow.Close()
primaryExe.Process("Close")
Return
Comments