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

VB 6 et antérieur Discussion :

[VB6] activer Écran de veille


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 5
    Points : 7
    Points
    7
    Par défaut [VB6] activer Écran de veille
    Bonjour. J'ai une petite application contenenant entre autre une fonction permettant de modifier l'écran de veille.

    Le code fonctionne pour modifier l'écran et enregistrer les paramètres. Mais si j'ai arrêté l'écran de veille via les propriétés Affichage Windows et que je choisis un nouvel écran de veille via mon appli, les paramètres sont enregistrés mais l'écran de veille ne démarre pas au bout du délai spécifié dans propriétés Affichage.

    Pour que ça fonctionne, je dois aller dans propriétés Affichage et cliquer sur OK dans l'onglet écran de veille.

    j'ai une fonction ToggleScreenSaverActive (True) mais ça ne marche pas. Comment faire pour assurer que l'écran va démarrer au bout du délai d'attente?

    Voici mon code et merci d'avance.

    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
    Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
    Private Const SPI_SETDESKWALLPAPER = 20
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
    Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
    Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Const WM_SYSCOMMAND = &H112
    Private Const SC_SCREENSAVE = &HF140&
     
    Private Declare Function SystemParametersInfo2 Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction As Long, ByVal uiParam As Long, pvParam As Any, ByVal fWInIni As Long) As Boolean
    Private Const SPI_GETSCREENSAVEACTIVE As Long = &H10
     
     
    Private Declare Function SystemParametersInfo3 Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Long, ByVal fuWinIni As Long) As Long
    Private Const SPI_SETSCREENSAVEACTIVE = 17
     
     
        Public Function ToggleScreenSaverActive(Active As Boolean) As Boolean
    		    Dim lActiveFlag As Long
    		    Dim retvaL As Long
    		    lActiveFlag = IIf(Active, 1, 0)
    		    retvaL = SystemParametersInfo3(SPI_SETSCREENSAVEACTIVE, lActiveFlag, 0, 0)
    		    ToggleScreenSaverActive = retvaL > 0
        End Function
     
     
     
    Private Sub filSystem_Click()
     
        'enregistrement du choix d'écran de veille
     
        Dim screen_saver As String
     
        screen_saver = ShortFileName( _
            GetSystemDir() & "\" & filSystem.FileName)
        SetIniString _
            GetWindowsDir() & "\System.ini", _
            "boot", "SCRNSAVE.EXE", screen_saver
     
        ShowScreenSaver
     
        ToggleScreenSaverActive (True) 
     
    End Sub
    [Balises "Code" ajoutées par AlainTech]
    [Pensez-y vous-même à l'avenir. Merci.]

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Jean-François, bonjour,

    Il y a dans le code que tu as mis dans ton sujet plusieurs fonctions inutilisées et n'ayant absolument aucun rapport avec ton écran de veille...
    Ce serait déjà une bonne idée que de rééditer ton "post" et faire le nettoyage nécessaire (moins d'encombrement... et démonstration de ce que tu sais ce que tu fais).

  3. #3
    Membre régulier Avatar de daladim
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2004
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 153
    Points : 94
    Points
    94
    Par défaut
    Salut,

    je n'ai pas testé ce que je te dis, mais je pense que tu peux arriver à ce que tu veux en modifiant le Regsitre.
    Ca ne m'etonnerait pas qu'il faille modifier la valeur HKEY_CURRENT_USER\Control Panel\Desktop\ScreenSaveActive (1 : oui, 0 : non).
    Le seul inconvénient, c'est que je ne suis pas sûr que ca applique le changement tout de suite : il faut, je pense, redémarrer (ou fermer la session et la réouvrir...)

    J'espère que ca peut quand même t'aider...

Discussions similaires

  1. Activer la protection par mot de passe sur l'écran de veille
    Par Raphs dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/11/2006, 16h36
  2. [VB6]activer désactiver un disque dur
    Par ica89 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 28/08/2006, 11h07
  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][active x] faire du multi-thread avec vb
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/05/2003, 12h01
  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