kapiaba Posted April 22, 2014 Report Share Posted April 22, 2014 // 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" Luiz Arruda (ICO) 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 22, 2014 Author Report Share Posted April 22, 2014 Documentando: https://sites.google.com/site/hblibs/classes-e-funcoes/tela-cheia-no-windows-7 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 22, 2014 Author Report Share Posted April 22, 2014 // Origen: //http://forums.fivetechsupport.com/viewtopic.php?f=6&t=25108&start=0&hilit=WBEMScripting.SWBEMLocator #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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 22, 2014 Author Report Share Posted April 22, 2014 #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" Quote Link to comment Share on other sites More sharing options...
gibaf Posted May 16, 2014 Report Share Posted May 16, 2014 // 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted September 24, 2015 Author Report Share Posted September 24, 2015 Para: João Alpande. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.