>>Lparameters lnWidth, lnHeight >>If Pcount() # 2 >> If Vartype(_Screen.LastWidth)="U" >> Return >> Else >> lnWidth=_Screen.LastWidth >> lnHeight=_Screen.lastHeight >> Endif >>Endif >>Clear >>#Define ENUM_CURRENT_SETTINGS -1 >>#Define CDS_UPDATEREGISTRY = 0x01 >>#Define CDS_TEST 0x02 >>#Define DISP_CHANGE_SUCCESSFUL 0 >>#Define DISP_CHANGE_RESTART 1 >>#Define DISP_CHANGE_FAILED -1 >>#Define DM_PELSWIDTH 0x00080000 >>#Define DM_PELSHEIGHT 0x00100000 >> >>Declare Integer EnumDisplaySettings In win32API ; >> string deviceName,; >> integer modeNum, ; >> string @ lpdevMode >> >>Declare Long ChangeDisplaySettings In win32API ; >> string lpDevMode, ; >> integer dwflags >> >>lpdevMode = Replicate(Chr(0),512) >> >>EnumDisplaySettings(0,ENUM_CURRENT_SETTINGS,@lpdevMode) >> >>* Save previous resolution >> >>_Screen.AddProperty("LastWidth",CToBin(Substr(m.lpdevMode,109,4),"4RS")) >>_Screen.AddProperty("LastHeight",CToBin(Substr(m.lpdevMode,113,4),"4RS")) >>* Check if not the same, no use to change when the same >>If _Screen.LastWidth # m.lnWidth or _Screen.LastHeight # m.lnHeight >> Wait Window "Ekran çözünürlüğü ayarlanıyor..." At Srows()/2,Scols()/2-10 Nowait >> lpdevMode = Stuff(m.lpdevMode,41,4,BinToC(DM_PELSWIDTH+DM_PELSHEIGHT,"4RS")) >> lpdevMode = Stuff(m.lpdevMode,109,4,BinToC(lnWidth,"4RS")) >> lpdevMode = Stuff(m.lpdevMode,113,4,BinToC(lnHeight,"4RS")) >> result = ChangeDisplaySettings(m.lpdevMode,CDS_TEST) >> If !( result = DISP_CHANGE_SUCCESSFUL ) >>*Wait Window "Mode not supported." Timeout 1 >> Return .F. >> Else >> ChangeDisplaySettings(m.lpdevMode,0) >> Endif >>Endif >>Return >>Endfunc >> >>*!* Source Code From Cetin BASOZ >>*!* To use it, just place it somewhere in your app like this: >>*!* ChangeRes(1024,768) >>*!* That means I am forcing the screen to have a resolution of 1024x768. When I exit my main form, in the unload event I place this: >>*!* ChangeRes(_Screen.LastWidth,_Screen.lastHeight) >>*!* And that would restore the previous screen resolution. >>