? SetScreenresolution(1024,768)
FUNCTION SetScreenresolution(tnWidth,tnHeight,tnFrequency)
#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
#DEFINE DM_DISPLAYFREQUENCY 0x00400000
LOCAL lpDevMode,result
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)
*!* ? "Current settings are:",;
*!* CTOBIN(Substr(m.lpdevMode,109,4),"4RS"),;
*!* CTOBIN(Substr(m.lpdevMode,113,4),"4RS")
* Width and Height
lpdevMode = STUFF(m.lpdevMode,109,4,Int2DWord(m.tnWidth))
lpdevMode = STUFF(m.lpdevMode,113,4,Int2DWord(m.tnHeight))
IF !EMPTY(m.tnFrequency)
lpdevMode = STUFF(m.lpdevMode,121,4,Int2DWord(m.tnFrequency)) && Frequency
lpdevMode = STUFF(m.lpdevMode,41,4,;
Int2DWord(BITOR(DM_PELSWIDTH,DM_PELSHEIGHT,DM_DISPLAYFREQUENCY))) && dmFields
ELSE
lpdevMode = STUFF(m.lpdevMode,41,4,;
Int2DWord(BITOR(DM_PELSWIDTH,DM_PELSHEIGHT))) && dmFields
ENDIF
result = ChangeDisplaySettings(m.lpdevMode,CDS_TEST)
IF !( result = DISP_CHANGE_SUCCESSFUL )
MESSAGEBOX("Mode is not supported",0+48,'Monitor settings')
ELSE
ChangeDisplaySettings(m.lpdevMode,0)
TEXT to m.lcSetting noshow
La resolución de su pantalla ha sido cambiada.
Presione [Si] para confirmar el cambio.
Se restablecerá automáticamente la resolución en 30 segundos.
ENDTEXT
IF MESSAGEBOX(m.lcSetting,4+64,'Monitor settings',30000) != 6
ChangeDisplaySettings(0,0) && restore
ENDIF
ENDIF
ENDFUNC
FUNCTION Int2DWord(tInt)
LOCAL lcDWord,ix
lcDWord = ''
FOR ix=1 TO 4
lcDword = m.lcDword + CHR( INT(m.tInt / 256^(m.ix-1)) % 256 )
ENDFOR
RETURN m.lcDword
ENDFUNC
14 de julio de 2012
Cambiar la resolución del monitor desde VFP
Una excelente función del turco Cetin Basoz que nos permite cambiar la resolución de la pantalla desde Visual FoxPro.
Suscribirse a:
Comentarios de la entrada
(
Atom
)
Estoy mejorando presentación de formulario. Gracias.
ResponderBorrar