Accueil > > > CHANGER LA RESOLUTION DE L'ECRAN EN VB
CHANGER LA RESOLUTION DE L'ECRAN EN VB
Information sur la source
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
Sources de la même categorie
Commentaires et avis
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??
|
Derniers Blogs
[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2 par ROMELARD Fabrice
Avec la dernière génération du lecteur MP3 de Microsoft, le ZUNE HD, Microsoft a publié une nouvelle version du logiciel pour PC. Ainsi, je me suis décidé à installer celle-ci sur mon Tablet PC ACER, comme toujours le logiciel est donc tél...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|