begin process at 2010 03 18 03:48:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > CHANGER LA RESOLUTION DE WINDOWS

CHANGER LA RESOLUTION DE WINDOWS


 Information sur la source

Note :
8,31 / 10 - par 32 personnes
8,31 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :changer, modifier, resolution, ecran, changedisplaysettings Niveau :Expert Date de création :15/05/1999 Vu :28 081

Auteur : Nix

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note


 Description

Comment changer la résolution de Windows ?

Mettez ce code dans un Module :

Source

  • 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 Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  • Private Const CCHDEVICENAME = 32
  • Private Const CCHFORMNAME = 32
  • Private Const DM_WIDTH = &H80000
  • Private Const DM_HEIGHT = &H100000
  • Private Const WM_DEVMODECHANGE = &H1B
  • Private Const HWND_BROADCAST = &HFFFF&
  • Private Const HWND_DESKTOP = 0
  • Private Type DEVMODE
  • dmDeviceName As String * CCHDEVICENAME
  • 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 * CCHFORMNAME
  • dmUnusedPadding As Integer
  • dmBitsPerPel As Integer
  • dmPelsWidth As Long
  • dmPelsHeight As Long
  • dmDisplayFlags As Long
  • dmDisplayFrequency As Long
  • End Type
  • Dim dmEcran As DEVMODE
  • Private Sub ResolutionEcran(sgWidth As Single, sgHeight As Single)
  • Dim blTMP As Boolean
  • Dim lgTMP As Long
  • lgTMP = 0
  • Do
  • blTMP = EnumDisplaySettings(0, lgTMP, dmEcran)
  • lgTMP = lgTMP + 1
  • Loop Until Not blTMP
  • dmEcran.dmFields = DM_WIDTH Or DM_HEIGHT
  • dmEcran.dmPelsWidth = sgWidth
  • dmEcran.dmPelsHeight = sgHeight
  • lgTMP = ChangeDisplaySettings(dmEcran, 0)
  • Call SendMessage(HWND_BROADCAST, WM_DEVMODECHANGE, 0, 0)
  • End Sub
  • ' Ensuite dans un pour changer la résolution :
  • Call ResolutionEcran(640, 480)
  • ' Votre affichage passera en 640x480
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 Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const CCHDEVICENAME = 32
Private Const CCHFORMNAME = 32
Private Const DM_WIDTH = &H80000
Private Const DM_HEIGHT = &H100000
Private Const WM_DEVMODECHANGE = &H1B
Private Const HWND_BROADCAST = &HFFFF&
Private Const HWND_DESKTOP = 0

Private Type DEVMODE
    dmDeviceName As String * CCHDEVICENAME
    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 * CCHFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
End Type

Dim dmEcran As DEVMODE

Private Sub ResolutionEcran(sgWidth As Single, sgHeight As Single)
    Dim blTMP As Boolean
    Dim lgTMP As Long
    lgTMP = 0
    Do
        blTMP = EnumDisplaySettings(0, lgTMP, dmEcran)
        lgTMP = lgTMP + 1
    Loop Until Not blTMP
    dmEcran.dmFields = DM_WIDTH Or DM_HEIGHT
    dmEcran.dmPelsWidth = sgWidth
    dmEcran.dmPelsHeight = sgHeight
    lgTMP = ChangeDisplaySettings(dmEcran, 0)
    Call SendMessage(HWND_BROADCAST, WM_DEVMODECHANGE, 0, 0)
End Sub

' Ensuite dans un pour changer la résolution :

Call ResolutionEcran(640, 480)

' Votre affichage passera en 640x480



 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) FAIRE UN PING (ICMP) EN VB 2005 (LE PLUS SIMPLEMENT DU MONDE...
IMPRIMER LE CONTENU D'UN RICHTEXTBOX
Source avec Zip Source avec une capture TESTEUR DE REGEX (REGULAR EXPRESSIONS)
Source avec Zip Source avec une capture FORCER LE REBOOT SOUS WINDOWS NT OU WINDOWS 2000 (REDÉMARRAG...
COMPTER LES MOTS DANS UNE CHAINE DE CARACTÈRE

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) RECADRER_IMAGE par Le Pivert
Source avec Zip Source avec une capture Source .NET (Dotnet) EDITION DE CARACTÈRES MATRICIELS (POUR BITMAP, CF CODE 128) par Blodox
Source avec Zip Source avec une capture CRÉATION D'UN MASQUE GRAPHIQUE POUR MODIFIER LA COULEUR D'UN... par Dudule_73
Source avec Zip Source avec une capture Source .NET (Dotnet) GÉNÉRATEUR DE CODE 128 (CODE-BARRE) par Blodox
Source avec Zip Source .NET (Dotnet) GENERATEUR DE CAPTCHA par Ant95

 Sources en rapport avec celle ci

Source avec Zip LNKUPDATER par VladislavIV
Source .NET (Dotnet) SETFILEDATE par hugoclavet
Source .NET (Dotnet) CHANGER LA RESOLUTION DE L'ECRAN EN VB par vbtouf
Source avec Zip CHANGER LA RESOLUTION AFFICHAGE WINDOWS (+ COULEUR + FREQUE... par newtechnologie
CHANGER LA DATE par Lolo

Commentaires et avis

Commentaire de ErAzEr le 31/12/2001 12:33:08

saumm
Tu crée un bouton , tu vas dans le code du bouton , ça dois donnée ça

Private Sub Command1_Click()
Call ResolutionEcran(640, 480)

End Sub

Commentaire de vichamp le 01/08/2002 11:36:57

Excelent, mais j'voudrais pas etre chiant, mais komment on fait pour changé la rézo du 2eme moniteur quand on a 2 ??? :)

Commentaire de olid le 04/09/2002 19:45:34

Encore plus dur, et jen ai besoin pour mon ecran de veille :

Détecter tous les moniteurs et afficher la meme fenetre dans chaque...en sachant quils ont pas tous la meme résolution :op

Commentaire de SyDGiN le 16/10/2002 13:13:16

ARGHH
Nix, ton code est très bien, mais pourrais-tu m'indiquer (dans la foulée) pkoi lorsque je suis en 800*600, que j'indique un changement vers 1024*768, la barre des tâches reste aux coordonnées du mode 800*600 (cad x=0,y=1024-800, width=800)
Je n'arrive pas à la redimensionner (en passant par setwindowpos ou movewindow) pour qu'elle retrouve ses place et taille originales (en bas koa).

yati un truc ?

ZeeD

Commentaire de Seifer1 le 03/03/2003 16:35:23

Comme SyDGiN g le prob avec la barre des taches qui apprait en plein miliel de l'ecran si je passe de 800*600 a 1024*768 et si je fais l'inverse donc de 1024*768 a 800*600 g plus du tout de barre des taches et c assz genant, est ce qu'il y a un truc pour que la barre des taches se place correctement en fonction de la resolution ???
Merci d'avance

Seifer

Commentaire de Hypercool7 le 26/03/2003 20:08:53

je debute la programation , mé une fois que c dans un module , comment on execute le code en cliquant sur un bouton d'une form kelkonc?

Commentaire de simonthevbking le 15/05/2003 03:28:53

CÉ good ton truc ! J'cherchais une manière de faire ca pas trop compliqué, pis je l'ai trouvé !

Commentaire de Natim le 06/04/2004 08:33:00

C'est exactement ce que je cherche mais moi, quand je lance mon resolution.vbs
Il me touve une erreur !!
ligne 1 caractère 17 fin d'instruction attendue !!
Avez vous une idée
Je remets le code ?
Aller ok tenez :

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 Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const CCHDEVICENAME = 32
Private Const CCHFORMNAME = 32
Private Const DM_WIDTH = &H80000
Private Const DM_HEIGHT = &H100000
Private Const WM_DEVMODECHANGE = &H1B
Private Const HWND_BROADCAST = &HFFFF&
Private Const HWND_DESKTOP = 0

Private Type DEVMODE
    dmDeviceName As String * CCHDEVICENAME
    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 * CCHFORMNAME
    dmUnusedPadding As Integer
    dmBitsPerPel As Integer
    dmPelsWidth As Long
    dmPelsHeight As Long
    dmDisplayFlags As Long
    dmDisplayFrequency As Long
End Type

Dim dmEcran As DEVMODE

Private Sub ResolutionEcran(sgWidth As Single, sgHeight As Single)
    Dim blTMP As Boolean
    Dim lgTMP As Long
    lgTMP = 0
    Do
        blTMP = EnumDisplaySettings(0, lgTMP, dmEcran)
        lgTMP = lgTMP + 1
    Loop Until Not blTMP
    dmEcran.dmFields = DM_WIDTH Or DM_HEIGHT
    dmEcran.dmPelsWidth = sgWidth
    dmEcran.dmPelsHeight = sgHeight
    lgTMP = ChangeDisplaySettings(dmEcran, 0)
    Call SendMessage(HWND_BROADCAST, WM_DEVMODECHANGE, 0, 0)
End Sub


' Ensuite dans un pour changer la résolution :

Private Sub Command1_Click()
Call ResolutionEcran(1024, 768)
End Sub
' Votre affichage passera en 1024x768

Commentaire de Natim le 06/04/2004 08:47:24

C'est bon !! j'ai réussi
Pour ce qui est de faire un executable ! Il faut faire comment ?

Commentaire de 187bundy le 06/05/2004 09:04:39

Salut à tous ;-)

Heu ... Comment on déclare un Any en vb.NET ?

++
187

Commentaire de Raidwan le 20/01/2005 20:24:06

Des petits problèmes de compatibilité avec ce code..
selon la carte graphique ou je ne sait pas quoi mais bon ca marche trés bien avec les résolution conventionnelle (640x480 , 800x600 ou encore 1024x768) mais lorsqu'on veut une résolution 16/9 par exemple ça ne marche pas partout exemple avec la résolution 848x480 qui marche sur ma config mais pas sur celle d'un pote ???!!
carte graphique ? écran ? windows ? hmm...

mais c'est déjà du bon boulot.

Commentaire de Hades51 le 21/03/2005 14:53:01

C'est du a quoi l'erreur ligne 1 car 17 quand on colle ça dans un .vbs ?

Commentaire de rcpp le 02/06/2005 13:12:01

Salut

C'est vrai que ce code est bien pratique, mais avec 2 petits problèmes (sachant que je suis en train de developper un jeu) :

1 - Le jeu allant être lancé sur des pcs qui possèdent a l'origine des résolutions différentes, comment enregistrer cette résolution afin de pouvoir la restaurer lorsqu'on quitte le jeu?

2 - Je note que lors du changement de résolution, la fréquence de rafraichissement de l'écran est également modifiée (60Hz). Comment faire pour conserver la fréquence d'origine?

Si quelqu'un a la réponse, merci de me le faire savoir. :)

Commentaire de Justice Yanga le 26/11/2006 18:24:29

Le code est bon mais pour qu'il fonctionne, il faut remplacer private sub resolutionEcran par public sub resolutionecran

Commentaire de knarf49 le 15/04/2008 18:30:37

Est-il possible de "faire semblant" de changer la résolution sans que l'écran clignote avant d'adopter la nouvelle résolution.  En fait, pour résoudre un problème de mauvais affichage de texte dans des copies d'écran et export.chart je souhaite juste passer un instant à 1024x768 pour ensuite revenir en mode normal 1280x800 - mais de façon transparent.
Mon problème est lié au format widescreen de mon portable et le constructeur ne propose pas de mise à jour du driver.

Commentaire de brand1991 le 12/05/2008 18:09:12

Alors moi jcomprends que dalle ! Surtout qu'il me souligne plein de truc et je sais pas comment intégrer dans mon Form1, c'est super mal expliqué vos code pour ceux qui connaissent pas grand chose

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

comment changer la resolution ecran a partir de vb [ par steph ] comment peut on changer de resolution au lancement d'une apli ?merci au dieu du vb ! executable de resolution ? [ par Xs ] bonjours,vous ne me connaissez pas ici : je fais plutot dans le c++.je cherchais un prog pour changer la resolution de mon ecran mais comme j'ai pas v Connaitre la resolution ecran et la changer [ par prev ] Bonjour a tousJe souhaiterais, a l'ouverture de mon programme, connaitre la resolution d'ecran de l'utilisateur et, au besoin, la changer en 800 x 600 changer la resolution de mon ecran [ par devbryan ] salut a tousj'aimerais bien savoir comment changer la resolution de mon ecran avec VBexite-il une fonction API qui le fait???si oui laquelle?? Changer la resolution de l'ecran [ par tigroux ] Comme l'indique le titre je souhaiterai changer la resolution de mon ecran lorsque je lance mon appli et le remettre à son ancienne taille quand je qu Changer la resolution de l'ecran [ par tigroux ] Comme l'indique le titre je souhaiterai changer la resolution de mon ecran lorsque je lance mon appli et le remettre à son ancienne taille quand je qu je recherche a changer la resolution de l?ecran au demarage de mon fichier et de le remettre a l?origine à la fermeture. Est ce que c?estpossible? [ par oz38 ] jái un gros problemes, lorsque que lón change de poste, nous avons pas obligatoirement la meme resolutions graphique , et mes userforms deviennent éno Changer le nom d'une Feuille Excel [ par nagstef ] Bonjour !J'utilise cette formule afin de modifier ou récupérer des données de différentes cellules d'un classeur Excel.classeur.wo API pour resolution d'ecran [ par greg13 ] Existe t'il une api qui permet de connaitre la resolution de l'ecranMerciGreg resolution ecran [ par joflo ] Bonjour à tousje voudrais changer la résolution de mon écran avec du code VB6si cela est possible y aurait il un volontaire pour m'aider ?merci


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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 : 1,373 sec (3)

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