Basic Warframe Auto Login
Posted: 14 Dec 2017, 10:12
I made an auto login for Warframe. It's not a good a idea to run because your password is saved in plain text and if you don't know what that means then you should not use this script. If you would still like to use it you'll find my example below and you may need to change the the password used if it's not the same as your password Also potentially change the color of the login button color as I do run a Reshade for Warframe which changes my colors, but I have checked a few times on a regular setup and verified it worked. Another note is that the script is set to start Warframe in 64bit mode, dx11, and not fullscreen. The PixelSeach will work on Borderless Fullscreen and Windowed mode, but Windowed would require some changes to the pixel coordinates.
Updated the script to include Nextron's until loop on the Play button because my original setup still failed to hit Play on occasions. Thanks Nextron!
On a side note you could easily turn this into a daily login script if you really want to accumulate those logins while on vacation.
UPDATE: Pixel location and color has changed on the new login screen and I haven't bothered to update it. You'll have to change that and it should work again.
Updated the script to include Nextron's until loop on the Play button because my original setup still failed to hit Play on occasions. Thanks Nextron!
Code: Select all
#NoEnv
SetWorkingDir %A_ScriptDir%
DetectHiddenWindows, On
SetKeyDelay, 40, 40
SetMouseDelay, 40
SetTitleMatchMode, 2
SetFormat, FloatFast, 0 ;; Round the math up.
;; Configuration
Bypass := 0 ;; Start Warframe w/o Steam or the checking for updates with the launcher. Not a good idea if there's updates.
LoginButtonColor := 0xD7D7D7 ;; A Gray Color I use to determine the Login Button is Visable
LoginBtnVariation := 25 ;; PixelSearch color variation set to 25 works for my setup.
MyPassword = WaitingRoomGame
;; The Script
If ( Bypass = 0 )
{
Run, steam://rungameid/230410 ;; Steam Browser Link to Warframe
SetTimer, CheckPlayBtn, 200 ;; Check for the PLAY button
}
Else
{
;; Steamless Startup
RegRead, TheLauncherEXE, HKEY_CURRENT_USER\Software\Digital Extremes\Warframe\Launcher, LauncherExe
SplitPath, TheLauncherEXE, l_name, l_dir
;Run, %TheLauncherEXE% -cluster:public -registry:Steam, %l_dir% ;; Uncomment this line to Run the Launcher and check for updates, but no Steam.
;SetTimer, CtrlWait, 200 ;; Uncomment this one too if you want to run the launcher without Steam. Remember to comment the line below after!
Run, %l_dir%\..\Warframe.x64.exe -fullscreen:0 -dx10:0 -dx11:1 -threadedworker:1 -cluster:public -language:en ;; Start Warframe in 64bit Directx11 non-fullscreen mode.
}
;; After Launcher runs or not wait for WF to start and grab some stats we need for pixel searching.
WinWaitActive, WARFRAME ahk_exe Warframe.x64.exe
WinGetActiveStats, wTitle, wWidth, wHeight, wX, wY
h_wWidth := ( wWidth / 2 ) ; Half window width
l_wHeight := ( wHeight * 0.766666 ) ; Login Button yPosition
p_wHeight := ( wHeight * 0.726851 ) ; Password Box yPosition
h_wHeight := ( wHeight / 2 ) ; Half window height
Loop,
{
If !WinActive( "WARFRAME ahk_exe Warframe.x64.exe" )
{
WinWaitActive, WARFRAME ahk_exe Warframe.x64.exe
}
;; Get the Login Color
; PixelGetColor, MyLoginClr, %h_wWidth%, %l_wHeight%
; Tooltip, Login Color is %MyLoginClr%, 10, 10
;; Look for the Gray Login Button. Color could be wrong on some setups if you use something like Reshade/SweetFX
PixelSearch, , , %h_wWidth%, %l_wHeight%, %h_wWidth%, %l_wHeight%, %LoginButtonColor%, %LoginBtnVariation%
If ( Errorlevel = 0 ) && WinActive( "WARFRAME ahk_exe Warframe.x64.exe" )
{
Break
}
Sleep, 100 ; Stop spamming
}
BlockInput, On
Send, {Click, %h_wWidth%, %p_wHeight%, 3} ; Have to click the password box because the cursor poofs sometimes. Thanks DE.
Sleep, 30
ControlSendRaw, , %MyPassword%, WARFRAME ahk_exe Warframe.x64.exe ; ControlSend so our password isn't sent to the wrong window on accident.
Sleep, 30
SendInput, {Enter}
BlockInput, Off
ExitApp
CheckPlayBtn:
ControlGet, PlayButton, HWND, , Warframe is up to date!, Warframe ahk_exe Launcher.exe ; Look for these words so we know WF is up to date.
If !PlayButton
{
Return
}
Else
{
Loop
{
While WinExist("Warframe ahk_class Launcher ahk_exe Launcher.exe")
{
ControlClick, PLAY, Warframe ahk_class Launcher ahk_exe Launcher.exe
Sleep, 200
}
Sleep, 1500
} Until !WinExist("Warframe ahk_class Launcher ahk_exe Launcher.exe") ;Second loop in case the launcher updates and restarts
SetTimer, CheckPlayBtn, Off
}
Return
UPDATE: Pixel location and color has changed on the new login screen and I haven't bothered to update it. You'll have to change that and it should work again.