begin process at 2010 02 10 05:30:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Windows

 > 

API

 > 

Modifier la résolution de plusieurs écrans


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Modifier la résolution de plusieurs écrans

dimanche 24 septembre 2006 à 10:48:53 | Modifier la résolution de plusieurs écrans

Daghis

Bonjour,

J'ai récupérer le code suivant sur le site pour modifier la résolution d'un écran, mais comment l'adapter pour modifier l'affichage de 4 écrans que j'utilise pour mon application.

Merci !

  1. Option Explicit
  2. Const CCHDEVICENAME = 32
  3. Const CCHFORMNAME = 32
  4. Private Type DEVMODE
  5.     dmDeviceName As String * CCHDEVICENAME
  6.     dmSpecVersion As Integer
  7.     dmDriverVersion As Integer
  8.     dmSize As Integer
  9.     dmDriverExtra As Integer
  10.     dmFields As Long
  11.     dmOrientation As Integer
  12.     dmPaperSize As Integer
  13.     dmPaperLength As Integer
  14.     dmPaperWidth As Integer
  15.     dmScale As Integer
  16.     dmCopies As Integer
  17.     dmDefaultSource As Integer
  18.     dmPrintQuality As Integer
  19.     dmColor As Integer
  20.     dmDuplex As Integer
  21.     dmYResolution As Integer
  22.     dmTTOption As Integer
  23.     dmCollate As Integer
  24.     dmFormName As String * CCHFORMNAME
  25.     dmUnusedPadding As Integer
  26.     dmBitsPerPel As Integer
  27.     dmPelsWidth As Long
  28.     dmPelsHeight As Long
  29.     dmDisplayFlags As Long
  30.     dmDisplayFrequency As Long
  31. End Type
  32. Const DM_BITSPERPEL = &H40000
  33. Const DM_PELSWIDTH = &H80000
  34. Const DM_PELSHEIGHT = &H100000
  35. Const DM_DISPLAYFLAGS = &H200000
  36. Const DM_DISPLAYFREQUENCY = &H400000
  37. Private Declare Function ChangeDisplaySettings Lib "user32" Alias
  38. "ChangeDisplaySettingsA" (lpInitData As DEVMODE, ByVal dwFlags As Long)
  39. As Long
  40. Private Declare Function EnumDisplaySettings Lib "user32" Alias
  41. "EnumDisplaySettingsA" (lpszDeviceName As Any, ByVal iModeNum As Long,
  42. lpDevMode As Any) As Boolean
  43. Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As
  44. Long, ByVal dwReserved As Long) As Long
  45. Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long,
  46. ByVal nIndex As Long) As Long
  47. Const BITSPIXEL = 12
  48. Dim D As DEVMODE
  49. dim lBits As Long, Largeurecran As Double, Hauteurecran As Double
  50. '*************écrire ce code dans "Form_Activate"**************
  51. Private Sub Form_Activate()
  52.     lBits = GetDeviceCaps(hdc, BITSPIXEL)
  53.     Largeur = Screen.Width \ Screen.TwipsPerPixelX
  54.     Hauteur = Screen.Height \ Screen.TwipsPerPixelY
  55.    Call EnumDisplaySettings(0&, -1, D)
  56.    D.dmFields = DM_BITSPERPEL Or DM_PELSWIDTH Or DM_PELSHEIGHT
  57.    D.dmPelsWidth = 1024 'vous pouvez spécifier la résolution désirée
  58.    D.dmPelsHeight = 768 'vous pouvez spécifier la résolution désirée
  59.    D.dmBitsPerPel = 32
  60.    Call ChangeDisplaySettings(D, 1)
  61.     
  62. End Sub
  63. '********écrire ce code dans "Form_Terminate"***********************
  64. Private Sub Form_Terminate()
  65. Dim res As DEVMODE
  66.  Call EnumDisplaySettings(0&, -1, res)
  67.    res.dmFields = DM_BITSPERPEL Or DM_PELSWIDTH Or DM_PELSHEIGHT
  68.    res.dmPelsWidth = Largeur
  69.    res.dmPelsHeight = Hauteur
  70.    res.dmBitsPerPel = lBits
  71.    Call ChangeDisplaySettings(res, 1)
  72.     
  73. End Sub
vendredi 29 septembre 2006 à 19:36:27 | Re : Modifier la résolution de plusieurs écrans

Daghis

Réponse acceptée !

On est jamais mieux servi que par soi-méme

Une Soixantaine d'internautes est venu lire mon problème et personne n'a su y répondre???

Bref moi j'ai cherché et j'ai écris ça.

Ca marche pour moi.

Je vous le transmets au cas où ça interesserait quelqu'un

'------------------------------------------------------
Option Explicit

Private Declare Function ChangeDisplaySettingsEx Lib "user32" Alias "ChangeDisplaySettingsExA" (lpszDeviceName As Any, lpDevMode As Any, ByVal hWnd As Long, ByVal dwFlags As Long, lParam As Any) As Long

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
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
    dmICMMethod As Long 'NT 4.0
End Type

Dim NRame As Byte
Dim DLL_COS As Object
Dim Machine(2) As Object
Dim Wagon(8) As Object
Dim Rame2Côtés As Object
Dim Câblot As Object
Dim Côté As String

Private Sub Main()
Dim J As Byte

' *********************************************************************************
' Ces lignes pour modifier la résolution vidéo
Dim DevM As DEVMODE
DevM.dmSize = Len(DevM)
DevM.dmFields = &H80000 Or &H100000
DevM.dmPelsWidth = 1280
DevM.dmPelsHeight = 1024

Call ChangeDisplaySettingsEx(ByVal "\\.\DISPLAY1", DevM, ByVal 0&, &H4, ByVal 0&)
Call ChangeDisplaySettingsEx(ByVal "\\.\DISPLAY2", DevM, ByVal 0&, &H4, ByVal 0&)
Call ChangeDisplaySettingsEx(ByVal "\\.\DISPLAY3", DevM, ByVal 0&, &H4, ByVal 0&)
Call ChangeDisplaySettingsEx(ByVal "\\.\DISPLAY4", DevM, ByVal 0&, &H4, ByVal 0&)
' *********************************************************************************



Cette discussion est classée dans : long, private, const, dm, integer


Répondre à ce message

Sujets en rapport avec ce message

pb recuperation de l'adresse mac sous winNT [ par andrea ] Bonjour, J'ai un probleme lorsque j'essaie de recuperer l'adresse mac d'un ordinateur qui est sous NT cela me renvoie toujours la valeur suivant 0.0.0 Convertir un WMF en EMF [ par daveCrocket ] Bonjour à tous,j'ai récupérer ce source pour transformer un wmf en emf, mais je ne sais pas comment je dois l'utiliser. Pouvez-vous m'aider ?********* api pour showintaskbar [ par Stephane ] salut a tousj'ai un probleme, il me faudrai savoir comment enlever un rectangle(dont je connai le hwnd) dans la barre des taches a partir d'un hwnd, e Service NT [ par ricopetitdejeuner ] Bonjour a tous!J'ai une pitite question sur les service NT. J'arrive bien a creer mon service, mais lorsque je veux le lancer, il n'y arrive pas (aucu image du bureau ds une picturebox [ par SupraDolph ] salut a tous je voudrai avoir l'image de mon bureau dans une picturebox ou une image. j'utilise ce code qui fonctionnai sous win98 SE je croi mais g w !! Avis aux boss des Api !!!!!!! [ par schouly ] Comment capter le click de la souris sur un bouton dans un popupmenu créé par : CreatePopupMenu, TrackPopupMenu, AppendMenuMerci Schoulyex : (allapi.n ScrollBar [ par MickeyCohen ] J'ai ce bout de code :Private Declare Function ShowScrollBar Lib "user32" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As LongPrivate Prob ScrollBars I NEED HELP [ par Titant ] Salut,Lorceque je veux changer le scrollbar à l'aide d'un bouton genre:Text1.ScrollBars = 2Ben il me sort un mess d'erreur genre:Impossible d'affecter conversion en .NET [ par Safireo ] slut tlm !je cherche à terminer la conversion de ce code en .net.j'arrive à éliminer les erreurs mais pas à faire fonctionner le logiciel qui doit me pivoter acquisition image [ par joe321 ] Salut, J'utilise la procedure suivante pour recuper le signal video de ma carte TV <span class


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales