Ajustar resolucion
Ajustar resolucion
Antonio
Como puedo cambiar la resolución del monitor al inicio de ejecutar la aplicación y dejarla conforme estaba al salir de la misma?
Entube buscando en el foro y no fue claro lo poco que encontré
Gracias por tu orientación
Jairo Barbosa
Como puedo cambiar la resolución del monitor al inicio de ejecutar la aplicación y dejarla conforme estaba al salir de la misma?
Entube buscando en el foro y no fue claro lo poco que encontré
Gracias por tu orientación
Jairo Barbosa
Horaciohoracio wrote:Jaba
Aqui en el foro hay una clase para eso, yo participé en ese hilo que lo inició Manuel Valdenebro ( creo ) e inclusive lo utilizé en una aplicación. En Fivewin Brasil, en Dicas, se encuentra esta clase pero había que hacer unas modificaciones.
Saludos
Sï... estuve mirando en el foro y note que Manuel desarrollo algo al respecto, le escribí al directo pero no tuve respuesta de el. Agradezco tu reporte y si tienes alguna función o arreglo al respecto le agradece que lo compartas en el foro para que todos tengamos la oportunidad
Cordialmente
Jairo Barbosa
Para quienes lo requieran
//---------------------------------------------------------------------//horacio wrote:Jaba
Estoy fuera de mi ciudad. El martes regreso y te lo envio. Saludos
Horacio
Buen viaje
Acabo de poner en el foro la función de Don Manuel Valdenebro, que aunque no recibí respuesta de le me tome el atrevimiento y le hice algunas modificaciones para que quedara un poco mas amigable, me gustaría que la ensayes y me dieras tu opinión ya que estando en cualquier resolución de pantalla la pasa sin problemas a la deseada, fue muy fácil, dejo un ejemplo con ejecutable y los fuentes en el siguiente link porque le puede servir a otras personas.
http://rapidshare.com/files/155573089/Tutor02.rar.html
Cordialmente
Jairo Barbosa
jaba;
Disculpame que no te respondí en tiempo y forma pero tuve algunos inconvenientes con mi proveedor de internet. Aqui te mando el código
#define DM_PELSWIDTH nHex("80000")
#define DM_PELSHEIGHT nHex("100000")
Function CambiaResolucion( nAncho, nAlto, lPreguntar)
Local oDevMode
Local lPosible
Local cBuffer
Local lCamReso := .f.
Default nAncho := GetSysMetrics( 0 ), nAlto := GetSysMetrics( 1 ), lPreguntar := .t.
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
// Comprueba si es posible cambiar la resolución
lPosible := EnumDisplaySettings(0, 0, @cBuffer)
// Si es posible cambiar la resolución
If( lPosible )
If( lPreguntar )
If( !MsgYesNo("Desea cambiar la resolución?", "Atención") )
Return lCamReso
end
end
oDevMode:nFields := nOr( DM_PELSWIDTH, DM_PELSHEIGHT )
oDevMode:nPelWidth := nAncho
oDevMode:nPelHeigh := nAlto
cBuffer:=oDevMode:cBuffer
Try
ChangeDisplaySettings(@cBuffer, 4)
lCamReso := .T.
Catch
MsgStop("Modo no soportado", "Error" )
End
else
MsgStop("Modo no soportado", "Error" )
end
Return lCamReso
DLL32 FUNCTION EnumDisplaySettings(lpszDeviceName AS DWORD,;
iModeNum AS DWORD, ;
@lpDevMode AS LPSTR) AS BOOL PASCAL;
FROM "EnumDisplaySettingsA" LIB "User32.dll"
DLL32 FUNCTION ChangeDisplaySettings(@lpDevMode AS LPSTR,;
dwFlags AS DWORD) AS DWORD;
FROM "ChangeDisplaySettingsA" LIB "User32.dll"
DLL32 FUNCTION ExitWindowsEx(uFlags AS DWORD,;
dwReserved AS DWORD) AS DWORD PASCAL;
LIB "user32.dll"
Probé tu solución y funciona perfectamente
Saludos
Disculpame que no te respondí en tiempo y forma pero tuve algunos inconvenientes con mi proveedor de internet. Aqui te mando el código
#define DM_PELSWIDTH nHex("80000")
#define DM_PELSHEIGHT nHex("100000")
Function CambiaResolucion( nAncho, nAlto, lPreguntar)
Local oDevMode
Local lPosible
Local cBuffer
Local lCamReso := .f.
Default nAncho := GetSysMetrics( 0 ), nAlto := GetSysMetrics( 1 ), lPreguntar := .t.
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
// Comprueba si es posible cambiar la resolución
lPosible := EnumDisplaySettings(0, 0, @cBuffer)
// Si es posible cambiar la resolución
If( lPosible )
If( lPreguntar )
If( !MsgYesNo("Desea cambiar la resolución?", "Atención") )
Return lCamReso
end
end
oDevMode:nFields := nOr( DM_PELSWIDTH, DM_PELSHEIGHT )
oDevMode:nPelWidth := nAncho
oDevMode:nPelHeigh := nAlto
cBuffer:=oDevMode:cBuffer
Try
ChangeDisplaySettings(@cBuffer, 4)
lCamReso := .T.
Catch
MsgStop("Modo no soportado", "Error" )
End
else
MsgStop("Modo no soportado", "Error" )
end
Return lCamReso
DLL32 FUNCTION EnumDisplaySettings(lpszDeviceName AS DWORD,;
iModeNum AS DWORD, ;
@lpDevMode AS LPSTR) AS BOOL PASCAL;
FROM "EnumDisplaySettingsA" LIB "User32.dll"
DLL32 FUNCTION ChangeDisplaySettings(@lpDevMode AS LPSTR,;
dwFlags AS DWORD) AS DWORD;
FROM "ChangeDisplaySettingsA" LIB "User32.dll"
DLL32 FUNCTION ExitWindowsEx(uFlags AS DWORD,;
dwReserved AS DWORD) AS DWORD PASCAL;
LIB "user32.dll"
Probé tu solución y funciona perfectamente
Saludos
//--------------------------------------------------------------------------//horacio wrote:jaba;
Disculpame que no te respondí en tiempo y forma pero tuve algunos inconvenientes con mi proveedor de internet. Aqui te mando el código
#define DM_PELSWIDTH nHex("80000")
#define DM_PELSHEIGHT nHex("100000")
Function CambiaResolucion( nAncho, nAlto, lPreguntar)
Local oDevMode
Local lPosible
Local cBuffer
Local lCamReso := .f.
Default nAncho := GetSysMetrics( 0 ), nAlto := GetSysMetrics( 1 ), lPreguntar := .t.
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
// Comprueba si es posible cambiar la resolución
lPosible := EnumDisplaySettings(0, 0, @cBuffer)
// Si es posible cambiar la resolución
If( lPosible )
If( lPreguntar )
If( !MsgYesNo("Desea cambiar la resolución?", "Atención") )
Return lCamReso
end
end
oDevMode:nFields := nOr( DM_PELSWIDTH, DM_PELSHEIGHT )
oDevMode:nPelWidth := nAncho
oDevMode:nPelHeigh := nAlto
cBuffer:=oDevMode:cBuffer
Try
ChangeDisplaySettings(@cBuffer, 4)
lCamReso := .T.
Catch
MsgStop("Modo no soportado", "Error" )
End
else
MsgStop("Modo no soportado", "Error" )
end
Return lCamReso
DLL32 FUNCTION EnumDisplaySettings(lpszDeviceName AS DWORD,;
iModeNum AS DWORD, ;
@lpDevMode AS LPSTR) AS BOOL PASCAL;
FROM "EnumDisplaySettingsA" LIB "User32.dll"
DLL32 FUNCTION ChangeDisplaySettings(@lpDevMode AS LPSTR,;
dwFlags AS DWORD) AS DWORD;
FROM "ChangeDisplaySettingsA" LIB "User32.dll"
DLL32 FUNCTION ExitWindowsEx(uFlags AS DWORD,;
dwReserved AS DWORD) AS DWORD PASCAL;
LIB "user32.dll"
Probé tu solución y funciona perfectamente
Saludos
Gracias Horacio la Probare....
Cordial Saludo
Jairo
-
- Posts: 257
- Joined: Wed May 16, 2007 9:40 pm
- Location: Iquique Chile
http://rapidshare.com/files/155573089/Tutor02.rar.htmlelmoiquique wrote:existe actualmente alguna funcion o libreria que cambie la resolucion de la pantalla cuando uno entre a un sistema y al salir restaure la del escritorio de windows, si es que son distintas
- jrestojeda
- Posts: 543
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina
Hola a todos.
Esto está muy interesante... Ahora bien, si no es mucho pedir.
A alguien se le ocurre cómo hacer para cambiar el tamaño de fuente también?
Ejemplo:
Pasar de 800 x 600 Fuentes chichas (96ppp) a 1024 x 768 Fuentes grandes (120ppp)
Lograr esto sería un gol de media cancha!!!
Si alguien tiene algo hecho al respecto sería buenísimo que lo comparta.
Desde ya muchas gracias.
Saludos, desde Argentina, Esteban.
Esto está muy interesante... Ahora bien, si no es mucho pedir.
A alguien se le ocurre cómo hacer para cambiar el tamaño de fuente también?
Ejemplo:
Pasar de 800 x 600 Fuentes chichas (96ppp) a 1024 x 768 Fuentes grandes (120ppp)
Lograr esto sería un gol de media cancha!!!
Si alguien tiene algo hecho al respecto sería buenísimo que lo comparta.
Desde ya muchas gracias.
Saludos, desde Argentina, Esteban.