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
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|