Jump to content
Fivewin Brasil

Resolução de tela(window)


kapiaba

Recommended Posts


// 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()

LOCAL nResoAncho := GetSysMetrics(0)

IF nResoAncho > 800

CamReso ( 1024, 768 )

MSGINFO('HECHO. AQUI PUEDES INICIAR TU PROGRAMA ELABORADO PARA 1024 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"


Link to comment
Share on other sites

// Origen:





#include "fivewin.ch"

Function W_Main_Info ()

Local oDatos, oSrv, oJob, i, sMensaje := ""
Local oLoc := CreateObject ( "wbemScripting.SwbemLocator" )
Local objWMI
Local oResolucion, nResoIni, nResoFin

TRY

objWMI := oLoc:ConnectServer () && Aquí esta la configuración del Sistema

CATCH

TRY
objWMI := oLoc:ConnectServer ( "192.168.2.20" ) && 0.0.0.0

MsgInfo ( "IP OK" )

CATCH

MsgInfo ( "Error. Validando el servidor" )

CLOSE ALL

Return Nil

END

END

oResolucion := objWMI:ExecQuery ( "Select * from Win32_DesktopMonitor" )

sMensaje += CRLF + "Resolución de Pantalla:" + CRLF

FOR Each oDatos in oResolucion

sMensaje += "Alto: " + cValToChar ( oDatos:ScreenHeight ) + " * " + ;
"Ancho: " + cValToChar ( oDatos:ScreenWidth ) + CRLF

// aqui usted hace el controle
nResoIni := cValToChar ( oDatos:ScreenHeight )
nResoFin := cValToChar ( oDatos:ScreenWidth )

NEXT

MsgInfo ( sMensaje, "Información" )

RETURN NIL

Link to comment
Share on other sites


#include "Fivewin.ch"
#Include "dll.ch"
#Include "Struct.ch"

Function Main()

Local aAllRes := {}

aAllRes := AllRes()

if !empty( aAllRes )

XBrowse( aAllRes )

endif

Return nil

#define ENUM_CURRENT_SETTINGS -1
#define ENUM_REGISTRY_SETTINGS -2

Function AllRes()

Local aAllRes := {}
Local oDevmode
Local oModos
Local i

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

oModos := oDevMode:cBuffer

i := 0

do while .T.

if (EnumDisplaySettings(0, i, @oModos ))

AAdd( aAllRes, { oDevMode:nPelWidth, oDevMode:nPelHeigh, ;
oDevMode:nBitsPPel, oDevMode:nDisFreq } )
i++

else

exit

endif

Enddo

//? Len( aAllRes )

Return aAllRes

DLL32 FUNCTION EnumDisplaySettings(lpszDeviceName AS DWORD, iModeNum AS DWORD, ;
@lpDevMode AS LPSTR) AS BOOL PASCAL FROM "EnumDisplaySettingsA" LIB "User32.dll"

Link to comment
Share on other sites

  • 4 weeks later...
// 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()
 
   LOCAL nResoAncho := GetSysMetrics(0)
 
   IF nResoAncho > 800
 
      CamReso ( 1024, 768 )
 
      MSGINFO('HECHO. AQUI PUEDES INICIAR TU PROGRAMA ELABORADO PARA 1024 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"

ola...

estou precisando usar alguma coisa muito parecido com esse codigo...

gostaria saber 2 coisas:

1) a execucao da linha q tem esse comando lPosible := EnumDisplaySettings(0, 0, @cBuffer) faz a tela do windows ficar preta por uns segundos... tem como nao fazer isso (a tela do windows ficar preta por uns segundos - hehe)

2) tem como, antes dessa execucao, minimizar todos os aplicativos q esta sendo executado ??

obrigado..

Gilberto

Link to comment
Share on other sites

  • 1 year later...

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...