Before i tried with this script...
I think the issue it's related with display/adapters configuration in windows...i manage 2 options: monitors and adapters connected in the past or emucrt drivers not saves some entry with @60 by default.
#SingleInstance force
SetWorkingDir %A_ScriptDir%
Sleep, 5000
ChangeResolution( (bpp:=32), (breite:=640), (hoehe:=480), (hZ:=60) )
ChangeDisplayFrequency(60)
Exitapp
ChangeResolution( cD, sW, sH, rR )
{
VarSetCapacity(dM,156,0), NumPut(156,2,&dM,36)
DllCall( "EnumDisplaySettingsA", UInt,0, UInt,-1, UInt,&dM ),
NumPut(0x5c0000,dM,40) NumPut(cD,dM,104), NumPut(sW,dM,108), NumPut(sH,dM,112), NumPut(rR,dM,120)
Return DllCall( "ChangeDisplaySettingsA", UInt,&dM, UInt,0 )
}
ChangeDisplayFrequency(Frequency) {
VarSetCapacity(DEVMODE, 156, 0)
NumPut(156, DEVMODE, 36, "UShort")
DllCall("EnumDisplaySettingsA", "Ptr", 0, "UInt", -1, "Ptr", &DEVMODE)
NumPut(0x400000, DEVMODE, 40)
NumPut(Frequency, DEVMODE, 120, "UInt")
Return DllCall("ChangeDisplaySettingsA", "Ptr", &DEVMODE, "UInt", 0)
}