Newsgroup: it.comp.lang.visual-basic
Titolo: lettura risoluzione video

Ciao
Come si fa a leggere la risoluzione video corrente?
Esiste un metodo per andare a leggerlo da qualche parte?
Grazie
teo

 Esiste un metodo per andare a leggerlo da qualche parte?
Ascisse=Screen.Width / Screen.TwipsPerPixelX
Ordinate=Screen.Height / Screen.TwipsPerPixelY
Se qualcuno conosce casi particolari in cui la cosa potrebbe non funzionare,
vi prego di comunicarmelo, perchè io lo uso in diversi programmi e non
vorrei trovarmi un giorno con dei bug.
Ciao
Alberto

 vorrei trovarmi un giorno con dei bug.
Non mi risulta esserci delle situazioni in cui questa procedura potrebbe non
funzionare.
Io volevo solo aggiungere, per completezza dell'argomento, la possibilità di
utilizzare l'API EnumDisplaySettings() per poter accedere a più informazioni
sulla risoluzione, come per esempio la profondità del colore e la frequenza.
Ecco come usarla:
'*** Inizio del codice ***
Private Const ENUM_CURRENT_SETTINGS = -1
Private Type DEVMODE
    dmDeviceName As String * 32
    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 * 32
    dmUnusedPadding As Integer
    dmBitsPerPixel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    dmICMMethod As Long
    dmICMIntent As Long
    dmMediaType As Long
    dmDitherType As Long
    dmReserved1 As Long
    dmReserved2 As Long
    dmPanningWidth As Long
    dmPanningHeight As Long
End Type
Private Declare Function EnumDisplaySettings Lib "user32.dll" _
    Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As String, _
    ByVal iModeNum As Long, lpDevMode As DEVMODE) As Long
Private Sub Command1_Click()
    Dim CurDevM As DEVMODE
    CurDevM.dmSize = Len(CurDevM)
    Call EnumDisplaySettings(vbNullString, ENUM_CURRENT_SETTINGS, _
        CurDevM)
    MsgBox "La risoluzione corrente è:" & vbCrLf _
        & "Larghezza: " & CStr(CurDevM.dmPelsWidth) & " pixel" _
        & vbCrLf _
        & "Altezza: " & CStr(CurDevM.dmPelsWidth) & " pixel " _
        & vbCrLf _
        & "Colore: " & CStr(CurDevM.dmBitsPerPixel) & " bit x pixel" _
        & vbCrLf _
        & "Frequenza: " & CStr(CurDevM.dmDisplayFrequency) & " Hz"
End Sub
'*** Fine del codice ***
Ciao!
--
Esteban
Hosted by 
www.seber.it
(Remove nonspammare for reply)

 vorrei trovarmi un giorno con dei bug.
ho 2 monitor con diverse risoluzioni , monitor2 ( -640,0,0,480 ) e monitor 1
(0,0,800,600) stasera se ci riesco faccio delle prove e vi faccio sapere !

 (0,0,800,600) stasera se ci riesco faccio delle prove e vi faccio
sapere !
[Lokar]
Non e' necessario certo avere due monitor per fare le prove 8).
Basta cambiare la risoluzione dello schermo!
Lokar

 Basta cambiare la risoluzione dello schermo!
non hai capito ... volevo dire che ho anche coordinate negative , adesso
provo il metodo e vi fo sapere ...

 vorrei trovarmi un giorno con dei bug.
allora funge bene per i monovideo , per le schede DH invece legge solo la
risoluzione del video primario
testato con radeon VE e matrox 4500 DH , lanciato da qualsiasi dei due video
legge sempre la risoluzione del video primario !

 legge sempre la risoluzione del video primario !
Per me OK.
Grazie.
Ciao
Alberto

"Gigio2K" ha scritto:

Con la EnumDisplaySettings in congiunzione con la EnumDisplayDevices
hai provato, funziona?
-- 
Samuele Battarra
prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/news/

 hai provato, funziona?
bhe e' logico che con quelle funge !
la domanda generica e' se si conoscevano "bug" nell'uso di:
Ascisse=Screen.Width / Screen.TwipsPerPixelX
Ordinate=Screen.Height / Screen.TwipsPerPixelY
e questo mi pare un mezzo bugghetto !