Jump to content
Fivewin Brasil

Verificar a Resolução de Tela via comando do FiveWin


kapiaba

Recommended Posts

15 minutos atrás, kapiaba disse:

Edu, teste agora com esta RESOLUCAO que eu uso no WORKSHOP.exe.

EDU, SE VC. NAO TIVER ESTA RESOLUCAO, VEJA A QUE SE APROXIMA MAIS, PLS.

 


// C:\FWH..\SAMPLES\CAMRESO.PRG
	/*
Kapi boa tarde
	Primeiramente vai curinthians
	eu achei isso aqui nas minhas rotinas
	ele muda a resolucao do programa e quando sai volta ao normal do windows
*/
	// http://forums.fivetechsupport.com/viewtopic.php?f=6&t=9865&start=15
// By Marcelo Gomes e Yuri Marcelino
 
#include 'fivewin.ch'
#Include "dll.ch"
#Include "Struct.ch"
 
FUNCTION MAIN_reso()
 
   LOCAL nResoAncho := GetSysMetrics(0)
	   IF nResoAncho > 800
 
      // EDU, SE VC. NAO TIVER ESTA RESOLUCAO, VEJA A QUE SE APROXIMA MAIS, PLS.
      CamReso ( 1280, 768 ) 
 
      MSGINFO('HECHO. AQUI PUEDES INICIAR TU PROGRAMA ELABORADO PARA 1280 X 768')
 
   ELSEIF nResoAncho <= 800 .AND. ISWINXP()
 
      CamReso ( 800, 600 )
                                               
   ENDIF
 
RETURN NIL
 
FUNCTION CamReso(nAncho, nAlto)
 
   Local DM_PELSWIDTH  := nHex("80000")
   Local DM_PELSHEIGHT := nHex("100000")
   Local oDevMode
   Local lPosible
   Local cBuffer
   Local lCamReso := .f.
 
   DEFAULT nAncho := GetSysMetrics(0), ;
           nAlto  := GetSysMetrics(1)
 
   STRUCT oDevMode
      MEMBER cDevName  AS STRING LEN 32
      MEMBER nSpecVer  AS WORD
      MEMBER nDrvVer   AS WORD
      MEMBER nSize     AS WORD
      MEMBER nDrvExtra AS WORD
      MEMBER nFields   AS DWORD
      MEMBER nOrientat AS WORD
      MEMBER nPaperSiz AS WORD
      MEMBER nPaperLen AS WORD
      MEMBER nPaperWid AS WORD
      MEMBER nScale    AS WORD
      MEMBER nCopies   AS WORD
      MEMBER nDefSrc   AS WORD
      MEMBER nPrnQlty  AS WORD
      MEMBER nColor    AS WORD
      MEMBER nDuplex   AS WORD
      MEMBER nYResolut AS WORD
      MEMBER nTTOpt    AS WORD
      MEMBER nCollate  AS WORD
      MEMBER cFormName AS STRING LEN 32
      MEMBER nUnusePad AS WORD
      MEMBER nBitsPPel AS DWORD
      MEMBER nPelWidth AS DWORD
      MEMBER nPelHeigh AS DWORD
      MEMBER nDisFlags AS DWORD
      MEMBER nDisFreq  AS DWORD
   ENDSTRUCT
 
   cBuffer  := oDevMode:cBuffer
   lPosible := EnumDisplaySettings(0, 0, @cBuffer)
 
   IF lPosible
 
      oDevMode:nFields := nOr(DM_PELSWIDTH, DM_PELSHEIGHT )
      oDevMode:nPelWidth := nAncho
      oDevMode:nPelHeigh := nAlto
      cBuffer:=oDevMode:cBuffer
 
      TRY
	         ChangeDisplaySettings(@cBuffer, 4)
	         lCamReso := .T.
	      CATCH
	         MsgAlert("Modo no soportado", "Error" )
	      END
	   ELSE
	      MsgAlert("Modo no soportado", "Error" )
	   ENDIF
 
RETURN( lCamReso )
 
DLL32 FUNCTION EnumDisplaySettings(lpszDeviceName AS DWORD,;
iModeNum AS DWORD, ;
@lpDevMode AS LPSTR) AS BOOL PASCAL;
FROM "EnumDisplaySettingsA" LIB "User32.dll"
 
DLL32 STATIC FUNCTION ChangeDisplaySettings(@lpDevMode AS LPSTR,;
dwFlags AS DWORD) AS DWORD PASCAL;
FROM "ChangeDisplaySettingsA" LIB "User32.dll"
 
DLL32 FUNCTION ExitWindowsEx(uFlags AS DWORD,;
dwReserved AS DWORD) AS DWORD PASCAL;
LIB "user32.dll"
	DLL32 STATIC FUNCTION BlockInput( lTrava AS BOOL ) AS BOOL LIB "User32.DLL"
	// FIN / END


 

Regards, saludos.

vou testar

ja te falo

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...