IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Comment changer la resolution d'écran ?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 47
    Par défaut [VB.NET] Comment changer la resolution d'écran ?
    Bonjour,
    Je cherche à modifier la resolution de l'écran de l'odinateur si ell est en dessous de 1024/768.
    Sur les FAQ et sur le forum je n'ai pas trouvé de post correspondant a vs2003.

    Je voudrais modifier directement dans les proprietes de l'affichage.

    En Vba je zoumais le userform sans problèmes, mais là je rame , lorsque j'utilise le changement de reolution de la faq j'ai une erreur interopcomeexception(ancien format pour enum...)


    Au secours!!!!!!!!!!!!!!!!!

    editer par neguib pour mise en conformité du titre

  2. #2
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut Re: [VB.NET] Comment changer la resolution d'écran ?
    Citation Envoyé par letel
    ...lorsque j'utilise le changement de reolution de la faq j'ai une erreur interopcomeexception(ancien format pour enum...) ..
    Peux tu filer le lien sur la Faq dont tu parles stp :

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 47
    Par défaut
    Merci de me repondre

    VOICI LE CODE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Private Declare Function [b]EnumDisplaySettings [/b]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 Const CCHDEVICENAME = 32
    Private Const CCHFORMNAME = 32
    Private Const DM_WIDTH = &H80000
    Private Const DM_HEIGHT = &H100000
     
    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
     
    Public Sub ResolutionEcran(sgWidth As Long, sgHeight As Long)
     
    Dim blTMP As Boolean, lgTMP As Long, dmEcran As DEVMODE, res As Long
     
    lgTMP = 0
    Do
        blTMP = EnumDisplaySettings(0, lgTMP, dmEcran)
        lgTMP = lgTMP + 1
    Loop While blTMP <> 0
     
    dmEcran.dmFields = DM_WIDTH Or DM_HEIGHT
    dmEcran.dmPelsWidth = sgWidth
    dmEcran.dmPelsHeight = sgHeight
    lgTMP = ChangeDisplaySettings(dmEcran, 0)
     
    End Sub
    lien: http://vb.developpez.com/faq/?page=S...ger_resolution

    C'est la fonction en gras qui provoque l'erreur.

    N'y a t-il pas un moyen de le faire en utilisant le processus rundll32 ?

    editer par neguib pour

  4. #4
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Es-tu sous Windows 2000 ? car je me demande si EnumDisplaySettings est presente sous cet environnement et si ce n'est pas plutôt EnumDisplaySettingsEx
    Je ne m'y connais pas assez pour t'aider efficacement sur ce coup, j'espère que d'autres pourront mieux te conseiller que moi

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 47
    Par défaut
    Je suis sous xp PRO , je vais essayer EnumDisplaySettingsEx
    Merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 47
    Par défaut
    Toujours la meme reponse...
    Si tu as une autre idee idee ?

  7. #7
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Je suis désolé de ne pas pouvoir t'aider plus
    pourtant j'ai trouvé un exemple très proche de ce que tu souhaites faire mais peut être plus correct car utilisant le PInvoke, c'est un site très sûre en qualité, j'ai testé, il n'y a plus d'exception, en debuggant tout semble fonctionner impec mais je n'ai pas pu constater la modif de resolution (je suis sous W2000) il faut peut être jongler avec les differentes constante de flags

    1. Le code source
    http://www.codeproject.com/csharp/CSDynamicScrRes.asp
    2. Comme c'est du CSharp tu peux utiliser notre convertisseur
    http://www.dotnet-developpez.com/Convertisseur/CSharpToVBNet
    3. une référence utile:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/devcons_7gz7.asp

  8. #8
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Salut,
    Pour changer la résolution de l'écran c'est ici
    @+

    sujets fusionnés par neguib

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 47
    Par défaut
    Merci de vos reponses !!!!
    graphicsxp ta solution est tres bonne je suis sous xp pro et je n'ai aucun souscis lorsque je suis en 800/600 je passe bien en 1024/768 et lorque je referme je retourne bien en 800/600. EN VERSION DEBUG



    La modif dans Ma version release ne fonctionne pas .
    Je deduis donc que je n'ai pas importe la bonne dll

    Encore une petite aide svp.....

  10. #10
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Etrange, j'ai testé en mode Debug et en mode Release et ca marche tout aussi bien...
    As tu bien fais comme dans l'exemple?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 47
    Par défaut
    oui tout bien comme dans l'exemple.

    Quelle dll as tu importés?

    la dll de System.Runtime.InteropServices est elle bien system.dll en com ?

    C'est bien la premiere fois que ma version release est differente de ma DEBUG.

    J' ai essayé sur un autre ordi et j'ai eu le même resultat et pourtant le chemin est bon il fait bien la manip mais rien n'est validé.

  12. #12
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Je me suis permis d'enlever le [Resolu] histoire d'être cohérent

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 47
    Par défaut
    OUI tu as raison.

    J'ai refait toute la manip sur une form simple , j'ai la meme sousci.

    J'utilise le framework 1.1.

    J'ai mis mes forms au format 800/600 c'est moins bien mais a tout probleme il y a une solution.

    Merci a vous .

    J'espere que ce post permettera a des personnes de reussir le changement de resolution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/03/2006, 11h30
  2. [CF][VB.Net] Comment changer la date système du PDA ?
    Par zitoun dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 07/03/2006, 16h26
  3. Réponses: 6
    Dernier message: 31/10/2005, 13h21
  4. Réponses: 4
    Dernier message: 26/07/2005, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo