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 :

Désactiver l'écran de veille


Sujet :

Windows Forms

  1. #1
    Membre actif Avatar de hellspawn_ludo
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 257
    Points : 215
    Points
    215
    Par défaut Désactiver l'écran de veille
    Bonjour,

    J'aimerais désactiver l'écran de veille par du code vb 2005 mais je n'y arrive pas.

    Voici ce que j'ai mis dans ma classe en entête et dans un bouton :

    Entête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Declare Auto Function SystemParametersInfo Lib "user32.dll" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
     
        Const SPIF_UPDATEINIFILE = 1
        Const SPIF_SENDWININICHANGE = 2
     
        Public Const SPI_GETSCREENSAVEACTIVE = 16       'Permet de savoir si le ScreenSaver est activé sur votre machine
        Public Const SPI_GETSCREENSAVETIMEOUT = 14      'Permet de récupérer le temps au bout duquel le screenSaver démarre
        Public Const SPI_SETSCREENSAVEACTIVE = 17       'Permet d'activer ou de désactiver le screenSaver
        Public Const SPI_SETSCREENSAVETIMEOUT = 15      'Permet de changer le temps au bout duquel le screenSaver doit démarrer

    Le bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim Ret As Long
    Dim Activer As Boolean
     
    'Désactive l'écran de veille
    Ret = SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, False, 0, SPIF_SENDWININICHANGE Or SPIF_UPDATEINIFILE)
     
    If Ret = 1 Then
       MsgBox("Le screenserver est désactivé", vbInformation + vbOKOnly, "Info ScreenSaver")
    End If
    Quand j'exécute le prog. et que je clique sur le bouton, une erreur est levée :

    PinvokeStackImbalance a été détecté : Un appel à la fonction PInvoke 'test!WindowsApplication1.Form1::SystemParametersInfo' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.

    Quelqu'un aurait-il une idée sur le pourquoi de cette erreur ?

    Merci à vous.

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Tu trouveras des éléments de réponse sur le forum, dans ce sujet .
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre actif Avatar de hellspawn_ludo
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 257
    Points : 215
    Points
    215
    Par défaut
    Merci SaumonAgile, il fallait remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Declare Auto Function SystemParametersInfo Lib "user32.dll" (_
    ByVal uAction As Long, _
    ByVal uParam As Long, _
    ByVal lpvParam As String, _
    ByVal fuWinIni As Long)_
    As Long
    par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Declare Auto Function SystemParametersInfo Lib "user32.dll" (_
    ByVal uAction As Integer, _
    ByVal uParam As Integer, _
    ByVal lpvParam As String, _
    ByVal fuWinIni As Integer)_
    As Integer

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

Discussions similaires

  1. [VB2005] Désactivation de l'écran de veille
    Par gugus dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/11/2006, 17h46
  2. Script désactiver écran de veille
    Par seb76000 dans le forum Windows
    Réponses: 1
    Dernier message: 01/08/2006, 16h23
  3. [VB]écran de veille qui reste en icone réduite
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 25/04/2006, 23h51
  4. [VB6] activer Écran de veille
    Par Jean-François Boileau dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 31/03/2006, 22h22
  5. Creer un écran de veille
    Par Willand dans le forum C++Builder
    Réponses: 2
    Dernier message: 09/08/2002, 12h36

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