Search:
 
Principal
API / Mudar a Resolução 05/01/2007

*!* Autor: Alexandre Hédréville
*!* Modifica a resolução
*!* Syntax: ChangeRes(tnWidth, tnHeight)
*!* retorna: llRetVal
*!* Parametros: tnWidth, tnHeight
*!* tnWidth largura em pixels
*!* tnHeight altura em pixels

FUNCTION ChangeRes
LPARAMETERS 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)

*!* Instrucciones DECLARE DLL para cambiar resolución
DECLARE INTEGER EnumDisplaySettings IN Win32API ;
STRING lpszDeviceName,;
INTEGER iModeNum, ;
STRING @lpDevMode

DECLARE INTEGER ChangeDisplaySettings IN Win32API STRING @lpDevMode, INTEGER dwFlags

*!* Bucle para obtener todos los modos disponibles
DO WHILE EnumDisplaySettings(NULL, lnModeNum, @lcDevMode) <> 0
lnModeNum = lnModeNum +1
ENDDO

*!* Configurar la structura DevMode
lcDevMode = STUFF(lcDevMode, 41, 4, LongToStr(1572864))
lcDevMode = STUFF(lcDevMode, 109, 4, LongToStr(tnWidth)) && Ancho
lcDevMode = STUFF(lcDevMode, 113, 4, LongToStr(tnHeight)) && Alto

*!* Cambiar resolucion
ChangeDisplaySettings(@lcDevMode, 1)
ENDFUNC

FUNCTION LongToStr
LPARAMETERS lnLongVal
LOCAL lnCnt, lcRetStr
lcRetStr = ''
FOR lnCnt = 24 TO 0 STEP -8
lcRetStr = CHR(INT(lnLongVal/(2^lnCnt))) + lcRetStr
lnLongVal = MOD(lnLongVal, (2^lnCnt))
NEXT
RETURN lcRetStr
ENDFUNC

Autor:Alexandre Hédréville
Relacionados
API :
- Cores - Verificar a configuração de cores do Windo
- Deletar arquivo
- Desligar e Reiniciar o Windows
- Esconder e Exibir a barra de ferramentas
- Habilitar/Desabilitar Barra de Ferramentas e Botão
- Mover arquivo / Copiar-Colar
Documento sem título

Rafael Lippert
rafaellippert@gmail.com