CONTINUACION (plicacion en 800x600 o mas...)
Este codigo es parte del anterior, como tu vez es un procedimiento, yo lo puse en programa de inicio, si tienes dudas hasla saber
atte
ROD
*************************************
PROCEDURE CambiaRes
LPARAMETER tnWidth, tnHeight
LOCAL lnWidth, lnHeight, lnModenum, lcDevmode
lnModenum = 0
lcDevmode = REPLICATE(CHR(0), 156)
lnWidth = IIF(EMPTY(tnWidth), 800, tnWidth)
lnHeight = IIF(EMPTY(tnHeight), 600, tnHeight)
DECLARE INTEGER EnumDisplaySettings IN Win32API STRING, INTEGER, STRING @
DECLARE INTEGER ChangeDisplaySettings IN Win32API STRING @, INTEGER
DO WHILE enUmdisplaysettings(.NULL.,lnModenum,@lcDevmode)!=0
lnModenum = lnModenum+1
ENDDO
lcDevmode = STUFF(lcDevmode, 41, 4, loNgtostr(1572864))
lcDevmode = STUFF(lcDevmode, 109, 4, loNgtostr(tnWidth))
lcDevmode = STUFF(lcDevmode, 113, 4, loNgtostr(tnHeight))
chAngedisplaysettings(@lcDevmode,1)
ENDPROC
FUNCTION LongToStr
LPARAMETER lnLongval
LOCAL lnCnt, lcRetstr
lcRetstr = ''
FOR lnCnt = 24 TO 0 STEP -8
lcRetstr = CHR(INT(lnLongval/(2**lnCnt)))+lcRetstr
lnLongval = MOD(lnLongval, (2**lnCnt))
ENDFOR
RETURN lcRetstr
ENDFUNC
******************************