Newsgroup: it.comp.appl.access
Titolo: cambio risoluzione monitor come da esempio sito comune

nella sezione generals del sito comune ho scaricato l'esempio di carlo
costarella per cambiare la risoluzione video ma non sono riuscito a
modificarlo come segue:
avrei l'esigenza di controllare all'avvio del db se la risoluzione è diversa
da 1024 x 768 65000 colori
il db deve impostarla in quel modo ma deve tenere in memoria la vecchia
risoluzione in modo che all'uscita del db rimetto tutto com'era prima.
le icone resteranno nella posizione originaria?
mi rivolgo a carlo o a chiunque mi possa dare una dritta in quanto ho
tentato di modificare ma senzxa successo quel codice.
grazie.

 grazie.
Forse era giusto continuare con il vecchio 3d.
Comunque prova con:
http://groups.google.it/groups?q=cambiare+risoluzione+video+group:it.comp.appl.access&hl=it&lr=&ie=UTF-8&oe=UTF-8&group=it.comp.appl.access&selm=8fi1p1%24qlg%241%40nslave2.tin.it&rnum=1&filter=0
--
rgrds
SC
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 grazie.
MAssimiliano

 ha scritto nel messaggio
news:c75ib0$drj$1...@lacerta.tiscalinet.it...

L'esempio del SC ha dei problemi sulle versioni WIn>98 non sò come
mai ma non posiziona correttamente la Barra di Windows durante
la modifica della Risoluzione.
Tempo fà si è discusso di questo BACO, anche con Carlo che se non
sbaglio è l'autore....!
Io ho risolto riscrivendola con alcune modifiche, ho implementato pure il
Ripristino all'Uscita.
Ma al di là di tutto le ICONE non possono essere riposizionate come prima.
Se passi da 1024x768---->800x600 ovviamente le ICONE al ritorno
saranno tutte a Destra in alto proporzionalmente con l'Aumento della
Risoluzione.
E un pò come l'Effetto Zoom....!
L'unica cosa che potresti fare è lanciare il Riposizionamento AUTOMATICO
al rientro, ma non sarebbero come prima.....!
Ciao.
@Alex.


in windows xp pare che le icone restino dove si trovavano, pare....
il problema del posizionamento della barra in windwos 98 come lo hai
risolto?
Grazie.

 Grazie.
Lo da anche a te il problema....??
Io ho riscritto la Routine usando un sistema simile...!
Ciao.
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


si lo da anche a me è complicata la routine per risolvere il problema?
la puoi pastare qui?
Grazie.

 ha scritto nel messaggio
news:c7b2f4$3ip$1...@lacerta.tiscalinet.it...

Eccome no....!
La gestione del Ripristino l'ho scritta un po alla veloce io uso un File
esterno un INI, ma sostanzialmente dovrebbe andare.
Ciao.
@Alex.
'******************** IN UN MODULO *********************************
Option Compare Database
Option Explicit
Private Declare Function EnumDisplaySettings Lib "user32" Alias
"EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As
Long, lpDevMode As Any) As Boolean
Private Declare Function ChangeDisplaySettings Lib "user32" Alias
"ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As Long
Private Const CCDEVICENAME = 32
Private Const CCFORMNAME = 32
Private Const DM_PELSWIDTH = &H80000
Private Const DM_PELSHEIGHT = &H100000
Public Const DISP_CHANGE_SUCCESSFUL = 0
Public Const DISP_CHANGE_RESTART = 1
Public Const ENUM_CURRENT_SETTINGS = -1
Private Type DevMode
       dmDeviceName As String * CCDEVICENAME
       dmSpecVersion As Integer
       dmDriverVersion As Integer
       dmSize As Integer
       dmDriverExtra As Integer
       dmFields As Long
       dmOrientation As Integer
       dmPaperSize As Integer
       dmPaperLength As Integer
       dmPaperWidth As Integer
       dmScale As Integer
       dmCopies As Integer
       dmDefaultSource As Integer
       dmPrintQuality As Integer
       dmColor As Integer
       dmDuplex As Integer
       dmYResolution As Integer
       dmTTOption As Integer
       dmCollate As Integer
       dmFormName As String * CCFORMNAME
       dmUnusedPadding As Integer
       dmBitsPerPel As Integer
       dmPelsWidth As Long
       dmPelsHeight As Long
       dmDisplayFlags As Long
       dmDisplayFrequency As Long
End Type
Dim HoldX as single
Dim HoldY as Single
Public Function ChangeRes(Optional ByVal x As Single = 1024, Optional ByVal
Y As Single = 768) As Boolean
Dim DevM As DevMode
Dim A As Boolean
Dim I&
Dim B&
    ChangeRes = False
    DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
    DevM.dmSize = LenB(DevM)
    Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, DevM)
    HoldX = DevM.dmPelsWidth
    HoldY = DevM.dmPelsHeight
    If HoldX <> x Then
        I = 0
        Do
            A = EnumDisplaySettings(0&, I&, DevM)
            I = I + 1
        Loop Until (A = False)
        DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
        DevM.dmPelsWidth = x
        DevM.dmPelsHeight = Y
        ChangeRes = ChangeDisplaySettings(DevM, 1)
        ChangeRes = True
    End If
End Function
Public Sub SetOldRes()
    If flChangeRes Then ChangeRes HoldX, HoldY
End Sub
Public Function StartUp()
    flChangeRes = ChangeRes(1024, 768)
End Function