I typically run ESO with a browser open to check things like eso auction vendor prices. One of the annoyances I had is when I would go to alt-tab to look at something and end up on the launcher instead. To that end I built a Windows Batch file some time ago that would do this for me automatically (I've been running it for over a year). I've seen some threads asking for this functionality so I thought I would post it here.
Instructions:
1. Copy and paste everything below the indicated line in to a batch file and name it whatever you like.
2. You will need to know the location of your ESO launcher executable. Edit the batch file you just created and enter in the full path to your ESO executable. There's an example included in case you aren't sure what to enter.
3. Save the batch file and double click it whenever you want to launch the game.
Disclaimer and Notes:
-This is provided as is with no warranty or support etc. It should work on any modern Windows Operating System version with a typical ESO game client install but I have only run it on Windows 7 and 10.
-This should work for either the 32 or 64 bit game versions.
-Feel free to modify anything you like but do so at your own risk. The script is commented so you can see what it does and how it behaves.
-The script won't "blow up" if something doesn't work. The worst case is if something didn't work you'd have to close the script window.
-ZOS, I assume there is no issue providing this. If there is feel free to nuke the thread.
Copy Everything Under this in to a Windows Batch file as per the instructions above
@echo off
cls
:::FILL IN THIS PART
:::Make sure launcherfilepath is set to the valid Launcher file name and location. Do not remove the double quotes around the path and file name ("). You don't need to fill in anything else.
set launcherfilepath="C:\Program Files (x86)\ESO\Launcher\Bethesda.net_Launcher.exe"
:::Setting some environment variables used in the batch script
set esoexitloop=no
set esocli=no
set esoscriptpath=invalid
:::Make sure system directories are in the default script path.
path=%windir%;%windir%\system32;%windir%\system32\wbem
:::Verify launcher path and minimize script
for /f "tokens=*" %%a in ('dir /b /s %0') do set "esoscriptpath=%%a"
if /i not exist %launcherfilepath% echo Error! Please open the script and set a valid launcher file path&echo (Path to Bethesda.net_Launcher.exe)&pause&exit
if /i not "%1"=="min" start /min "..." "%esoscriptpath%" min&exit
cls&choice /c ab /d a /t 1 /m "Sleeping 1 second..."
:::Check to see if game client is running. If so check to see if launcher is still running and exit.
for /f "tokens=1" %%a in ('tasklist /fi "imagename eq eso64.exe"') do if /i "%%a"=="eso64.exe" set esoexitloop=yes
for /f "tokens=1" %%a in ('tasklist /fi "imagename eq eso.exe"') do if /i "%%a"=="eso.exe" set esoexitloop=yes
if /i %esoexitloop%==yes goto esoloop
:::If game client is not running and launcher is not running, run the launcher
for /f "tokens=1" %%a in ('tasklist /fi "imagename eq Bethesda.net_Launcher.exe"^|find /i /c "Bethesda.net_Launcher.exe"') do if /i "%%a"=="0" start "..." %launcherfilepath%
:::Loop that waits for the game to launch. Checks at 1 second intervals. 10 seconds after the game is launched the launcher and script will close. If game is not launched and launcher is closed the script will exit.
:esoloop
cls&choice /c ab /d a /t 1 /m "Waiting for game to launch..."
for /f "tokens=1" %%a in ('tasklist /fi "imagename eq eso64.exe"') do if /i "%%a"=="eso64.exe" set esoexitloop=yes
for /f "tokens=1" %%a in ('tasklist /fi "imagename eq eso.exe"') do if /i "%%a"=="eso.exe" set esoexitloop=yes
if /i %esoexitloop%==yes choice /c ab /d a /t 10 /m "Pausing..."
if /i %esoexitloop%==yes taskkill /pid Bethesda.net_Launcher.exe /f
for /f "tokens=1" %%a in ('tasklist /fi "imagename eq Bethesda.net_Launcher.exe"^|find /i /c "Bethesda.net_Launcher.exe"') do if /i "%%a"=="0" exit
goto esoloop
:end