Newsgroup: it.comp.lang.visual-basic
Titolo: R:[?]risoluzione schermo

 Ciao,
 
ringrazio ancora Moreno Sirri per avermi risposto così dettagliatamente
ma....
"non ti resta altro che "costringere" l'utente ad usare una risoluzione
minima di
800x600." 
Come lo costringo, devo cambiare la risoluzione dello schermo utente?
In che modo?
Ho trovato nel sito di Gianluca Cannarile (VB Tips and Tricks) un file
changeres.zip che dovrebbe cambiare la risoluzione dello schermo. Purtroppo
però non riesco a scaricarlo.
Aspetto suggerimenti e ringrazio tutti
Anna Maria - 
aia...@tin.it
--
Posted from 
mta01-acc.tin.it
 [212.216.176.32]
via Mailgate.ORG Server - 
http://www.mailgate.org

Ehi, chi si rivede!!! Quanto tempo! :-)))
Prova questo:
Per farlo funzionare basta che chiami la procedura ChangeRes:
Esempio:
Call ChangeRes(800, 600) cambia la risoluzione a 800x600
Call ChangeRes(1024, 768) te la cambia a 1024x768
Buon Divertimento, Ciao, Moreno
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
       Const CCDEVICENAME = 32
       Const CCFORMNAME = 32
       Const DM_PELSWIDTH = &H80000
       Const DM_PELSHEIGHT = &H100000
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 DevM As DEVMODE
Sub ChangeRes(iWidth As Single, iHeight As Single)
       Dim a As Boolean
       Dim i&
       i = 0
              Do
                     a = EnumDisplaySettings(0&, i&, DevM)
                     i = i + 1
              Loop Until (a = False)
       Dim b&
       DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
       DevM.dmPelsWidth = iWidth
       DevM.dmPelsHeight = iHeight
       b = ChangeDisplaySettings(DevM, 0)
End Sub

...

I valori attuali della dimensione dello schermo, li puoi ricavare da:
Screen.Width / 15	'Larghezza
Screen.Height / 15	'Altezza
Quindi all'avvio le memorizzi in due variabili, fai quello che devi fare e all'uscita dell'applicazione chiami la
funzione con i valori memorizzati. OK?
Ciao,
#sirri#@
tin.it
(togliete "#" dall'indirizzo)

#sirri#@
tin.it
Ciao.
---
Daniele Grison
gri...@tin.it

Screen.Height / Screen.TwipsPerPixelY
Grazie!!!!! Non ci avevo pensato e non solo, mi sono dovuto piů volte imbattere in problemi con le impostazioni dei
caratteri, ora so come fare!!!
Ciao!


Call ChangeRes(1024, 768) te la cambia a 1024x768
Scusa, non ho seguito il thread ma ho un quesito da porti (si da' il caso
che l'argomento interessi pure me): che succede se chiamo
Call ChangeRes(1, 2)??? Mi cambia la risoluzione a 1x2
PS: Ma dove le trovate ste API???