begin process at 2010 03 22 08:05:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > CHANGER LA RESOLUTION DE L'ECRAN EN VB

CHANGER LA RESOLUTION DE L'ECRAN EN VB


 Information sur la source

Note :
6,67 / 10 - par 6 personnes
6,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Source .NET ( DotNet ) Classé sous :changer, résolution, écran, ecran, resolution Niveau :Débutant Date de création :12/02/2006 Vu :17 532

Auteur : vbtouf

Ecrire un message privé
Site perso
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Ce bout de code permet de modifier la resolution de l'ecran à partir d'un programme VB, c'est un code VB.NET mis à jour à partir d'un code VB6, donc si quelqu'un à une autre methode purement DotNet je le remercie de la partager !

Source

  • 'Faire l'import suivant
  • Imports System.Runtime.InteropServices
  • 'le code à placer dans un module par exemple :
  • Private Declare Auto Function EnumDisplaySettings Lib "user32.dll" (<MarshalAs(UnmanagedType.LPTStr)> ByVal lpszDeviceName As String, ByVal iModeNum As Int32, ByRef lpDevMode As DEVMODE) As Boolean
  • Private Declare Auto Function ChangeDisplaySettings Lib "user32.dll" (ByRef lpDevMode As DEVMODE, ByVal dwFlags As Int32) As Int32
  • Private Const DM_BITSPERPEL As Int32 = &H40000
  • Private Const DM_PELSWIDTH As Int32 = &H80000
  • Private Const DM_PELSHEIGHT As Int32 = &H100000
  • Private Const DISP_CHANGE_SUCCESSFUL As Int32 = 0
  • <StructLayout(LayoutKind.Sequential)> _
  • Private Structure POINTL
  • Public x As Int32
  • Public y As Int32
  • End Structure
  • <StructLayout(LayoutKind.Explicit)> _
  • Private Structure DEVMODE_union1
  • ' struct {
  • <FieldOffset(0)> Public dmOrientation As Int16
  • <FieldOffset(2)> Public dmPaperSize As Int16
  • <FieldOffset(4)> Public dmPaperLength As Int16
  • <FieldOffset(6)> Public dmPaperWidth As Int16
  • ' }
  • <FieldOffset(0)> Public dmPosition As POINTL
  • End Structure
  • <StructLayout(LayoutKind.Explicit)> _
  • Private Structure DEVMODE_union2
  • <FieldOffset(0)> Public dmDisplayFlags As Int32
  • <FieldOffset(0)> Public dmNup As Int32
  • End Structure
  • <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
  • Private Structure DEVMODE
  • Private Const CCDEVICENAME As Int32 = 32
  • Private Const CCFORMNAME As Int32 = 32
  • <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CCDEVICENAME)> _
  • Public dmDeviceName As String
  • Public dmSpecVersion As Int16
  • Public dmDriverVersion As Int16
  • Public dmSize As Int16
  • Public dmDriverExtra As Int16
  • Public dmFields As Int32
  • Public u1 As DEVMODE_union1
  • Public dmScale As Int16
  • Public dmCopies As Int16
  • Public dmDefaultSource As Int16
  • Public dmPrintQuality As Int16
  • Public dmColor As Int16
  • Public dmDuplex As Int16
  • Public dmYResolution As Int16
  • Public dmTTOption As Int16
  • Public dmCollate As Int16
  • <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CCFORMNAME)> _
  • Public dmFormName As String
  • Public dmUnusedPadding As Int16
  • Public dmBitsPerPel As Int16
  • Public dmPelsWidth As Int32
  • Public dmPelsHeight As Int32
  • Public u2 As DEVMODE_union2
  • Public dmDisplayFrequency As Int32
  • Public dmICMMethod As Int32
  • Public dmICMIntent As Int32
  • Public dmMediaType As Int32
  • Public dmDitherType As Int32
  • Public dmReserved1 As Int32
  • Public dmReserved2 As Int32
  • Public dmPanningWidth As Int32
  • Public dmPanningHeight As Int32
  • End Structure
  • Public Function SetResolution(ByVal Width As Int32, ByVal Height As Int32, ByVal BitsPerPixel As Int16) As Boolean
  • Dim dm As DEVMODE
  • If Not EnumDisplaySettings(Nothing, 0, dm) Then
  • Return False
  • Else
  • With dm
  • .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
  • .dmPelsWidth = Width
  • .dmPelsHeight = Height
  • .dmBitsPerPel = BitsPerPixel
  • End With
  • Return (ChangeDisplaySettings(dm, 0) = DISP_CHANGE_SUCCESSFUL)
  • End If
  • End Function
  • 'Pour changer la résolution il suffit d'appeler la methode SetResolution de la manière suivante :
  • 'ex pour passer à un affichage 1024/768 en couleurs 32 bits
  • Debug.Assert(SetResolution(1024, 768, 32)
'Faire l'import suivant 
Imports System.Runtime.InteropServices

'le code à placer dans un module par exemple :

Private Declare Auto Function EnumDisplaySettings Lib "user32.dll" (<MarshalAs(UnmanagedType.LPTStr)> ByVal lpszDeviceName As String, ByVal iModeNum As Int32, ByRef lpDevMode As DEVMODE) As Boolean
    Private Declare Auto Function ChangeDisplaySettings Lib "user32.dll" (ByRef lpDevMode As DEVMODE, ByVal dwFlags As Int32) As Int32
    Private Const DM_BITSPERPEL As Int32 = &H40000
    Private Const DM_PELSWIDTH As Int32 = &H80000
    Private Const DM_PELSHEIGHT As Int32 = &H100000

    Private Const DISP_CHANGE_SUCCESSFUL As Int32 = 0

    <StructLayout(LayoutKind.Sequential)> _
    Private Structure POINTL
        Public x As Int32
        Public y As Int32
    End Structure

    <StructLayout(LayoutKind.Explicit)> _
    Private Structure DEVMODE_union1
        ' struct {
        <FieldOffset(0)> Public dmOrientation As Int16
        <FieldOffset(2)> Public dmPaperSize As Int16
        <FieldOffset(4)> Public dmPaperLength As Int16
        <FieldOffset(6)> Public dmPaperWidth As Int16
        ' }
        <FieldOffset(0)> Public dmPosition As POINTL
    End Structure

    <StructLayout(LayoutKind.Explicit)> _
    Private Structure DEVMODE_union2
        <FieldOffset(0)> Public dmDisplayFlags As Int32
        <FieldOffset(0)> Public dmNup As Int32
    End Structure

    <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
    Private Structure DEVMODE
        Private Const CCDEVICENAME As Int32 = 32
        Private Const CCFORMNAME As Int32 = 32

        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CCDEVICENAME)> _
        Public dmDeviceName As String
        Public dmSpecVersion As Int16
        Public dmDriverVersion As Int16
        Public dmSize As Int16
        Public dmDriverExtra As Int16
        Public dmFields As Int32
        Public u1 As DEVMODE_union1
        Public dmScale As Int16
        Public dmCopies As Int16
        Public dmDefaultSource As Int16
        Public dmPrintQuality As Int16
        Public dmColor As Int16
        Public dmDuplex As Int16
        Public dmYResolution As Int16
        Public dmTTOption As Int16
        Public dmCollate As Int16
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CCFORMNAME)> _
        Public dmFormName As String
        Public dmUnusedPadding As Int16
        Public dmBitsPerPel As Int16
        Public dmPelsWidth As Int32
        Public dmPelsHeight As Int32
        Public u2 As DEVMODE_union2
        Public dmDisplayFrequency As Int32
        Public dmICMMethod As Int32
        Public dmICMIntent As Int32
        Public dmMediaType As Int32
        Public dmDitherType As Int32
        Public dmReserved1 As Int32
        Public dmReserved2 As Int32
        Public dmPanningWidth As Int32
        Public dmPanningHeight As Int32
    End Structure

    Public Function SetResolution(ByVal Width As Int32, ByVal Height As Int32, ByVal BitsPerPixel As Int16) As Boolean
        Dim dm As DEVMODE
        If Not EnumDisplaySettings(Nothing, 0, dm) Then
            Return False
        Else
            With dm
                .dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL
                .dmPelsWidth = Width
                .dmPelsHeight = Height
                .dmBitsPerPel = BitsPerPixel
            End With
            Return (ChangeDisplaySettings(dm, 0) = DISP_CHANGE_SUCCESSFUL)
        End If
    End Function

'Pour changer la résolution il suffit d'appeler la methode SetResolution de la manière suivante :

'ex pour passer à un affichage 1024/768 en couleurs 32 bits

Debug.Assert(SetResolution(1024, 768, 32)

 Conclusion

Merci de reporter les bugs généres à cause de ce code, Thanks ;-)



 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) SE CONNECTER À UNE BASE DE DONNÉES SUR INTERNET

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) UTILISATION DE L' API GOOGLE YOUTUBE RECHERCHER ET LIRE DES ... par tresorsdevie
Source avec Zip Source avec une capture Source .NET (Dotnet) FAIRE LA DIFFÉRENCE ENTRE UNE ADRESSE EMAIL QUI EXISTE D'UNE... par lesinfosdugeek
ENVOYER UN MESSAGE SUR SON COMPTE TWITTER par lesinfosdugeek
Source avec Zip Source avec une capture TROUVER LES CLÉS DE REGISTRE QUI CHANGENT par Flocreate
Source avec Zip IP_PUBLIQUE_INTERNETGETCONNECTEDSTATE par marco62118

 Sources en rapport avec celle ci

Source avec une capture Source .NET (Dotnet) APPLIQUER UNE RESOLUTION GRÂCE À DIRECTDRAW par tinux
Source avec Zip CHANGE LA RESOLUTION DE L'ÉCRAN par vbkarraywalid
AFFICHER LES RÉSOLUTIONS D'ÉCRAN DISPONIBLES par lordxyp
Source avec Zip CHANGER LA RESOLUTION AFFICHAGE WINDOWS (+ COULEUR + FREQUE... par newtechnologie
CHANGER LA RESOLUTION DE WINDOWS par Nix

Commentaires et avis

Commentaire de guedira_elkhairi le 21/12/2006 01:19:09

merciiiiiiiiiii bq

Commentaire de titounours le 28/02/2007 00:16:50

Est ce que quelqu'un a pu tester ce code sous .NET ?
Pourrait il confirmer qu'il fonctionne ?
Merci.

Commentaire de SnkVrt le 17/03/2007 04:44:49

Super !!
Et pour répondre à Titounours, je l'ai testé par un simple copier\coller sur Visual Basic .Net (1.1) et ça marche très bien.
à ceci près que la dernière instruction (l'appel de la fonction SetResolution), j'ai dù virer "Debug.Asert" et bien sur, mettre cet appel sur un évènement (un click de bouton par exemple...)
Merci VbTouf !

Commentaire de ayoros08 le 11/06/2007 22:12:35

Bonjour,
je suis débutant et je travail avec VB2005 express et je voudrais savoir si ce code peut être appliqué avec cette version. J'ai essayé de l'utiliser mais j'ai des erreurs à chaque foi et comme je l'ai déjà dit je suis débutant et je ne comprends pas toutes les erreurs.
Merci d'avance

Commentaire de mechtaly le 02/02/2008 22:55:53 10/10

Merci, c'est ce que je cherchait
Ca marche Nikel!

juste une petite erreur Vbtouf, t'a oublié le dernier " ) " dans ta fonction
Debug.Assert(SetResolution(1024, 768, 32))

merci encore 10/10 ;)

Commentaire de DxShadow le 15/03/2008 13:45:08 10/10

Super cool ce code! Je m'en suis servi pour faire pivoter l'écran, ça marche super bien!

11/10! lol

Commentaire de spamito le 27/07/2008 01:44:25

Super ça marche parfaitement ce code. J'ai pu ajouter quelques fonctions à ce code que je vais posté prochainement.

Commentaire de bidouille007 le 23/01/2010 04:09:11 6/10

Bonjour vbtouf

Merci pour ce code qui semble être du vb.net enfin une longue quête pour aboutir sur ton code.

Cependant il y a quelques bugs sous VB.NET 2008 EXPRESS et les voici :
<StructLayout(LayoutKind.Explicit)> _ me génere des erreurs
<FieldOffset(0)>  et quelque soit le n° entre parenthèse pareil des erreurs
et le dernier pour la route :
If Not EnumDisplaySettings(Nothing, 0, dm) Then j'ai VB qui me dit qu'il n'y a pas de valeur assignée à dm.

vbtouf c'est possible de faire une petite mise à jour pourtant ton code n'est pas si ancien

Commentaire de DxShadow le 14/02/2010 12:28:55

Béni sois-tu mon ami lol

Non plus sérieusement, ton code est le meilleur de tout le Web, Franchement, j'en avais encore besoin, et je viens seulement de me rendre compte qu'il était le meilleur car le plus efficace! Il marche à tous les coups et me fait pas un caca nerveux du style "résolution non-standard" :)

Merci encore et A+ ;)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

APPLICATION DANS TOUTES LES RESOLUTIONS D'ECRAN [ par serge ] j'ai fait une application avec ma résolution écran 1024x768 mais lorsque je la visualise en 800x600, il me manque une grande partie d'écran et impossi Changer la résolution de l'écran [ par Mathieu ] Salut à tous.Je cherche à changer ma résolution 800*600 en 720*480 et inversement en utilisant VB5...J'ai vu quelques post à ce sujet mais aucun ne me 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 ! Prob. Résolution Ecran [ par dave ] bonjour à tous,mon but est de changer par programmation la résolution de l'écran.Lorsque j'utilise les modules disponibles sur ce site, si l'écran est comment changer la résolution d'un écran ?????? [ par fred ] bonjour;je souhaiterais que la résolution de l'écran change (1024*768) lorssque l'application se lance et bien sûr lorsque elle se ferme remettre la r 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 TAIILE DE FENTRE ET RESOLUTION D'ECRAN [ par acidburn23 ] Comment faire pour que la taille de ma fenetre soit proportionnelle à la résolution de l'ecran. Par exemple, mon appli doit pouvoir tourner sous une r 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 Position des controls en fonction de la résolution de l'écran ?? [ par Propheus ] Bonjour,Je debute en visual basic et je me trouve confronté à un problème.Je fais un application qui doit pouvoir s'executer sur plusieurs résolution 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??


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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,811 sec (3)

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