How can I set the resolution and refresh rate when the game starts?
Solution 1:
To force a particular program to launch with user defined properties like in Counter Strike, you can set the desired parameters in Set launch options.
Open Steam, right-click Counter Strike, then go to Properties. Search for Set launch options and type -freq (desired refresh rate)
like -freq 75
.
I am not sure if you can set resolution along with refresh rate. If so, add it to the launch options; otherwise just set manually the resolution as desired from the video options, which is also permanent as said earlier.
To add more parameters in set launch see this .
Solution 2:
By default, CS GO uses your desktop's refresh rate. If you set it to 144 in your video card's control panel you don't have to set it again.
Changing the resolution and refresh rate via command line is fairly easy. Put this in the field when you right-click on your game in Steam -> Properties -> Set launch options...
-w 1024 -h 768 -refresh 144
This will set the resolution to 1024 * 768 pixels and the refresh rate to 144 Hz. If you want to use 120 Hz just change that part accordingly. (-refresh 120
)
What does this command line do? Pretty much self-explaining:
-
-w *number*
defines the screen width (in pixels) -
-h *number*
defines the screen height (in pixels) -
-refresh *number*
(-freq
works too) defines the refresh rate (in Hertz)
Solution 3:
Late to the party but this is what I have worked out. I use the Windows Task Scheduler & DisplayChanger.
Afterwards anytime the csgo.exe program is started, your display settings will immediately be changed before the CSGO splash screen is shown, and a split second or so after csgo.exe window closes the desktop will change back to your default resolution.
Setup Display Switcher
First grab DC2 from the link above and extract it somewhere, say C:\DisplayChanger\
.
Next you want to generate your Display Changer config files.
- Use the Windows Display Settings to set your monitor(s) resolution the way you want it by default.
In CMD or PowerShell navigate to the
C:\DisplayChanger
or similar directory and rundc2.exe -create="default.xml"
. - Back in Windows Display Settings change to your preferred CS:Go (or other games) preferred resolution.
In CMD or PowerShell run
dc2.exe -create="csgo.xml"
.
This gives you 2 quick configs to switch between, here is what mine looks like currently at C:\DisplaySwitcher\csgo.xml
.
<monitors app-version="1.7.0.32" version="3" topology="Extend">
<!--The version identifies the format of the configuration file.-->
<!--topology=-->
<!--Internal, Clone, Extend, External-->
<!--The monitor ID attribute must be specified.-->
<monitor active="true" virtual="false" id="265988" id-FFFF="true" adapterHigh="0" adapterLow="76089">
<name>LQ156M1JW03</name>
<!--source: the origin of the video signal-->
<source id="0">
<name>\\.\DISPLAY1</name>
<path>\\?\PCI#VEN_8086&DEV_3E9B&SUBSYS_16621458&REV_00#3&11583659&0&10#{5b45201d-f2f2-4f3b-85bb-30ff1f953599}</path>
</source>
<size width="1280" height="960"/>
<position left="0" top="0"/>
<!--8bpp, 16bpp, 24bpp, 32bpp, Non-GDI-->
<color value="32bpp"/>
<!--Identity, 90-degreesCW, 180-degreesCW, 270-degreesCW-->
<rotation value="Identity"/>
<!--Identity, Centered, Stretched, Aspect Ratio Centered Max, Custom, Preferred-->
<scaling value="Stretched"/>
<!--A value of 0/0 represents the optimal refresh rate. Scan-line-order must be Unspecified.-->
<refresh numerator="533280000" denominator="2222000"/>
<!--Unspecified, Progressive, Interlaced (upper field first), Interlaced (lower field first)-->
<scanlineorder value="Progressive"/>
</monitor>
</monitors>
NOTES:
- It supports configuring multiple displays, so when editing the config xml files, be sure to find the correct section for each monitor you need to adjust.
- If you want 4:3 Scaled, set your resolution to 1280:960* and you may need to edit your
csgo.xml
config file, changing the following line for your display:
<!--Identity, Centered, Stretched, Aspect Ratio Centered Max, Custom, Preferred-->
<scaling value="Stretched"/>
Enable Application Start Logging & Creating Tasks
Follow this this guide to enable application logging as needed and understand how these tasks are set up. But once you have logging enabled and to save you time & the headache, here are my working tasks. Save these as .xml files and use the Import Task... option in the right sidebar:
"CSGO Change Resolution" task
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2020-07-25T11:07:41.3197953</Date>
<Author>Daniel Iser @daniel_iser</Author>
<URI>\CSGO Change Resolution</URI>
</RegistrationInfo>
<Triggers>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><QueryList><Query Id="0" Path="Security"><Select Path="Security">*[System[Provider[@Name='Microsoft-Windows-Security-Auditing' or @Name='Microsoft'] and Task = 13312 and (band(Keywords,9007199254740992)) and (EventID=4688)]]
and
*[EventData[Data[@Name='NewProcessName'] and (Data='C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo.exe')]]
</Select></Query></QueryList></Subscription>
</EventTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-21-3381179310-2398056333-3294365952-1001</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>false</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>"dc2.exe"</Command>
<Arguments>-configure="csgo.xml"</Arguments>
<WorkingDirectory>C:\DisplayChanger\</WorkingDirectory>
</Exec>
</Actions>
</Task>
"CSGO Reset Resolution" task
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2020-07-25T11:07:41.3197953</Date>
<Author>DESKTOP-NMFHG23\Daniel</Author>
<URI>\CSGO Reset Screen Resolution</URI>
</RegistrationInfo>
<Triggers>
<EventTrigger>
<Enabled>true</Enabled>
<Subscription><QueryList><Query Id="0" Path="Security"><Select Path="Security">
*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and (band(Keywords,9007199254740992)) and (EventID=4689)]]
and
*[EventData[(Data='C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo.exe')]]
</Select></Query></QueryList></Subscription>
</EventTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-21-3381179310-2398056333-3294365952-1001</UserId>
<LogonType>InteractiveToken</LogonType>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>false</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT0S</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>"dc2.exe"</Command>
<Arguments>-configure="Default.xml"</Arguments>
<WorkingDirectory>C:\DisplayChanger\</WorkingDirectory>
</Exec>
</Actions>
</Task>
You can pretty manually run each task to ensure they do switch display settings correctly. If not its likely a path issue.
Be sure to adjust your CS:GO aspect ratio and screen size settings to match appropriately but if you have been doing this manually up til now you already have them set.\
This is confirmed working on Windows 10 @latest