Ajustar resolucion

Ajustar resolucion

Postby jaba » Fri Oct 17, 2008 10:30 pm

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

Postby horacio » Sat Oct 18, 2008 3:16 pm

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

Postby jaba » Sat Oct 18, 2008 4:15 pm

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

Postby horacio » Sun Oct 19, 2008 3:06 pm

Jaba
Estoy fuera de mi ciudad. El martes regreso y te lo envio. Saludos
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Para quienes lo requieran

Postby jaba » Sun Oct 19, 2008 6:02 pm

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

Postby horacio » Mon Oct 27, 2008 2:58 pm

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

Postby jaba » Mon Oct 27, 2008 11:50 pm

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

Postby elmoiquique » Thu Oct 30, 2008 3:57 pm

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-Xharbour 24.09, Iquique, Chile
elmoiquique
 
Posts: 323
Joined: Wed May 16, 2007 9:40 pm
Location: Region de Ñuble, Chile

Postby jaba » Thu Oct 30, 2008 11:46 pm

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

Postby jrestojeda » Fri Oct 31, 2008 1:07 am

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
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Postby Johnson » Fri Oct 31, 2008 6:18 am

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 29 guests