Ajustar resolucion

Post Reply
jaba
Posts: 109
Joined: Tue Dec 12, 2006 12:39 am
Location: CALI COLOMBIA

Ajustar resolucion

Post by jaba »

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
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Post by horacio »

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
jaba
Posts: 109
Joined: Tue Dec 12, 2006 12:39 am
Location: CALI COLOMBIA

Post by jaba »

horacio 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
Horacio

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
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Post by horacio »

Jaba
Estoy fuera de mi ciudad. El martes regreso y te lo envio. Saludos
jaba
Posts: 109
Joined: Tue Dec 12, 2006 12:39 am
Location: CALI COLOMBIA

Para quienes lo requieran

Post by jaba »

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
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Post by horacio »

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
jaba
Posts: 109
Joined: Tue Dec 12, 2006 12:39 am
Location: CALI COLOMBIA

Post by jaba »

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
elmoiquique
Posts: 257
Joined: Wed May 16, 2007 9:40 pm
Location: Iquique Chile

Post by elmoiquique »

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
Fivewin 11.07
jaba
Posts: 109
Joined: Tue Dec 12, 2006 12:39 am
Location: CALI COLOMBIA

Post by jaba »

elmoiquique 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
http://rapidshare.com/files/155573089/Tutor02.rar.html
User avatar
jrestojeda
Posts: 543
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Post by jrestojeda »

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.
User avatar
Johnson
Posts: 18
Joined: Sat Nov 26, 2005 4:45 pm
Location: Brasil
Contact:

Post by Johnson »

amigo,
isso nao caberia para o usuario deliberar?
jah fiz algo parecido, o usuario diz que tem problema de vista e tals...
é complicado
eu faço o seguinte, quando vejo q a resolucao eh incompatível com a que o sistema pretende, mando um msgalert...

na realidade o computador eh do cliente...
Post Reply