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

C++Builder Discussion :

Forcer le choix d'un ecran veille


Sujet :

C++Builder

  1. #1
    Membre du Club Avatar de Revan777
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 87
    Points : 52
    Points
    52
    Par défaut Forcer le choix d'un ecran veille
    Bonjour,
    j'ai fait une appli pour modifier les clés de registre de l'écran de veille.

    But : Au démarrage de la session utilisateur, lancer l'appli pour forcer la configuration de l'écran de veille.

    Le problème est que je vois bien les modifications dans la base de registre après exécution du programme mais l'écran de veille ne démarre pas au bout des 1 min que j'ai choisie et l'état du panneau d'affichage ne se met pas à jour (il reste sur "(Aucun)")...

    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
    TRegistry *registre = new TRegistry();
            try
            {
                    registre->RootKey = HKEY_CURRENT_USER;
                    // Traitement...
                    if (registre->KeyExists("\\Control Panel\\Desktop"))
                    {
                            Edit1->Text = "test";
                            registre->OpenKey("\\Control Panel\\Desktop", false);
                            registre->WriteString("ScreenSaveActive", "1");
                            registre->WriteString("ScreenSaveTimeOut", "60");
                            registre->WriteString("SCRNSAVE.EXE", "C:\WINDOWS\System32\ssbezier.scr");
                    }
            }
            __finally
            {
                    delete registre;
            }
    Merci de m'éclairer là-dessus.

  2. #2
    Membre expérimenté
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Points : 1 427
    Points
    1 427
    Par défaut
    Si on regardes ce code, on voit que la commande SystemParametersInfo permet de modifier les données de configuration de l'écran de veille. Si on regarde dans l'aide de SystemParametersInfo, on remarque qu'il existe un paramètre nommé SPI_SETSCREENSAVETIMEOUT permettant de modifier la durée de l'attente avant le lancement de l'écran de veille.
    Peut-être que cela marchera mieux qu'avec la base de registres...

    Sinon, tu peux essayer ceci (mais je ne promets rien)
    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
     
    TRegistry *registre = new TRegistry();
            try
            {
                    registre->RootKey = HKEY_CURRENT_USER;
                    // Traitement...
                    if (registre->KeyExists("\\Control Panel\\Desktop"))
                    {
                            Edit1->Text = "test";
                            registre->OpenKey("\\Control Panel\\Desktop", false);
                            registre->WriteString("ScreenSaveActive", "1");
                            registre->WriteString("ScreenSaveTimeOut", "60");
                            registre->WriteString("SCRNSAVE.EXE", "C:\\WINDOWS\\System32\\ssbezier.scr");
                    }
            }
            __finally
            {
                    delete registre;
            }
    + + +

  3. #3
    Membre du Club Avatar de Revan777
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    J'ai trouvé ce code qui fonctionne, par contre je ne comprends pas s'il faut créer les 2 clés ou non et leur différence (entre Group Policy et Policies). Cela a l'air de fonctionner avec seulement l'ajout de la clé dans Policies.

    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
    pour verrouiller avec un ecran de veille style Texte 3D:
    Windows Registry Editor Version 5.00
     
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Group Policy Objects\{A2DDF9D5-28BD-4F95-BE6D-55358F9246E4}User\Software\Policies\Microsoft\Wind ows\Control Panel\Desktop]
    "ScreenSaveActive"="1"
    "SCRNSAVE.EXE"="sstext3d.scr"
    "ScreenSaverIsSecure"="1"
    "ScreenSaveTimeOut"="900"
     
    [HKEY_CURRENT_USER\Software\Policies\Microsoft\Wind ows\Control Panel\Desktop]
    "ScreenSaveActive"="1"
    "SCRNSAVE.EXE"="sstext3d.scr"
    "ScreenSaverIsSecure"="1"
    "ScreenSaveTimeOut"="900"
     
    et pour déverrouiller :
    Windows Registry Editor Version 5.00
     
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Group Policy Objects\{A2DDF9D5-28BD-4F95-BE6D-55358F9246E4}User\Software\Microsoft\Windows\Curre ntVersion\Policies\System]
    "NoDispScrSavPage"= -
     
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Group Policy Objects\{A2DDF9D5-28BD-4F95-BE6D-55358F9246E4}User\Software\Policies\Microsoft\Wind ows\Control Panel\Desktop]
    "ScreenSaveActive"= -
    "SCRNSAVE.EXE"= -
    "ScreenSaverIsSecure"= -
    "ScreenSaveTimeOut"= -
     
    [HKEY_CURRENT_USER\Software\Policies\Microsoft\Wind ows\Control Panel\Desktop]
    "ScreenSaveActive"= -
    "SCRNSAVE.EXE"= -
    "ScreenSaverIsSecure"= -
    "ScreenSaveTimeOut"= -

  4. #4
    Membre du Club Avatar de Revan777
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    J'ai essayé d'ajouter les valeurs comme décrit ci-dessus, ça désactive bien la config de l'écran de veille et met text3D par défaut mais il ne se déclenche pas au bout des 1min !!!
    Ai-je loupé quelque chose ?

Discussions similaires

  1. Ecran veille a partir MS Access
    Par CTOFY3 dans le forum Access
    Réponses: 7
    Dernier message: 16/01/2009, 16h52
  2. [Spyware] Bureau et Ecran veille
    Par zsoh dans le forum Sécurité
    Réponses: 8
    Dernier message: 05/08/2008, 18h52
  3. Forcer le choix dans une liste déroulante
    Par jarault dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 07/07/2008, 13h05
  4. [SaveFileDialog] forcer la choix d'un fichier
    Par loic_86 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/04/2007, 14h33
  5. Choix d'un écran LCD
    Par Tex-Twil dans le forum Périphériques
    Réponses: 9
    Dernier message: 23/11/2006, 22h43

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