Numéro d'article: 146907 - Dernière mise à jour: mardi 29 juin 2004 - Version: 3.2

Comment faire pour créer un écran de veille dans Visual Basic

Sommaire

Agrandir tout | Réduire tout

Résumé

Vous pouvez créer un économiseur d'écran Windows avec Visual Basic en suivant les instructions ci-dessous. Toutefois, notez que cet article fournit uniquement un plan très grossière de ce que vous devez faire pour un économiseur d'écran robuste. Il s'agit des instructions générales.

Plus d'informations

Suivez ces instructions lors de la création d'un écran de veille Windows avec Visual Basic :

  • Dans la boîte de dialogue fichier créer un fichier EXE, insérez la chaîne SCRNSAVE: (en majuscules) au début de titre de l'application. Par exemple :
    Poisson SCRNSAVE:Flying.
  • Dans la boîte de dialogue fichier créer un fichier EXE, spécifiez l'extension de nom de fichier de programme comme .scr au lieu de .exe.
  • Recherchez le fichier de programme .scr dans le répertoire \Windows.
  • Donner à votre formulaire les paramètres de propriété suivants afin qu'elle occupe la totalité de l'écran et n'a pas d'une barre de titre :
          Caption     = ""     (no caption)
          ControlBox  = False
          MaxButton   = False
          MinButton   = False
          WindowState = 2      (maximized)
    					
  • Ajoutez du code à tous les gestionnaires MouseMove, MouseDown et KeyDown d'événements quitter le programme. Étant donné que Visual Basic peut appeler le MouseMove chargé de l'événement lorsque le formulaire est d'abord, vous devez écrire du code pour ignorer le premier événement MouseMove. Le code de MouseMove suivant permet d'éviter un événement d'artefact se produit lorsque l'application est activé pour la première fois ou lorsque l'application est en cours d'exécution et une autre instance démarre (ce qui provoque la perte de focus) et ferme (restauration focus):
          Private Sub Form_MouseMove (Button As Integer, Shift As Integer, _
             X As Single, Y As Single)
             Static count As Integer
             If count > 2 Then
                End
             Else
                count = count + 1
             End If
          End Sub
    						
    Ceci vous donne un peu de marge lorsqu'il s'agit artefact MouseMove événements. Vous souhaiterez peut-être effectuer une opération similaire avec les événements souris appuyée et touche appuyée.

Empêchant lance plusieurs

Windows lance généralement le programme d'économiseur d'écran plusieurs fois. Pour empêcher l'exécution de plusieurs copies de votre écran de veille, ajoutez les instructions suivantes pour le Gestionnaire d'événements Form_Load ou Sub Main si utilisé :
   Private Sub Form_Load ()
      If App.PrevInstance Then
         End
      End If
   End Sub
				
il n'y a aucune raison pour tenter de restaurer l'instance précédente de l'écran de veille en tant que fenêtre active dans la mesure où elle devient la fenêtre active à la fin de l'instance de nouveau. Tout ce que vous avez à faire est de se terminer lorsque vous voyez une autre instance en cours d'exécution. Pour éviter que plusieurs instances de l'application d'exécution ainsi que pour maintenir l'exécution de l'application, vous devez déplacer le code le Form_Load() à un Sub Main(). Définissez ensuite l'option de formulaire de démarrage du projet à Sub Main(). Définition du projet pour commencer le traitement au niveau de Sub Main est effectuée sur l'onglet projet qui fait partie des options... dans le menu Outils. Par exemple :
   Public Sub Main ()
      If App.PrevInstance Then   ' If already running, end the application.
         End
      Else
         Form1.Show 1             ' Show the screen saver form.
      End If
   End Sub
				

Lancement de l'écran de veille

Windows prend en charge du lancement de l'écran de veille. Il assure le suivi des temps d'inactivité système et lance le programme d'économiseur d'écran. Vous pouvez utiliser un contrôle timer pour dessiner des graphiques périodiquement sur le formulaire.

Écrans de veille sont sélectionnés et configurés à partir du Panneau de configuration Windows dans la boîte de dialogue Bureau. La section de économiseur d'écran de cette boîte de dialogue comporte un bouton intitulé le programme d'installation qui invoque le programme d'économiseur d'écran avec la /c d'option de ligne de commande. Lorsque votre programme est appelé avec cette option, vous pouvez afficher un écran de configuration pour autoriser l'utilisateur de sélectionner des paramètres tels que la vitesse, le nombre d'objets, couleurs et ainsi de suite. Détecter le paramètre de ligne de commande /c en vérifiant la fonction $ Command. Par exemple :
   Private Sub Form_Load ()
      If Command$ = "/c" Then
         frmConfig.Show   ' Display configuration form.
         Unload Me        ' Bypass regular form.
      End If
   End Sub
				
lorsque Windows démarre l'écran de veille, il indique généralement la /s d'option de ligne de commande.

Améliorations possibles

Vous pouvez également faire apparaître par-dessus toutes les autres fenêtres en le rendant une fenêtre de niveau supérieur de votre programme.

Pour plus d'informations, consultez les articles suivants dans la base de connaissances Microsoft :
84251  (http://support.microsoft.com/kb/84251/EN-US/ ) Comment faire pour créer une fenêtre de premier plan ou flottant dans Visual Basic
En outre, vous trouverez deux programmes d'exemple et obtenir une explication complète montrant comment écrire votre propre écran de veille dans Visual Basic dans l'ouvrage suivant :
«Visual Basic Workshop 3.0» par John c. Craig, publié par Microsoft Press.
Cet article est un plan approximative de ce que vous devez faire pour un économiseur d'écran robuste. Par exemple, vous pouvez souhaiter disposer le démarrage s'agir d'un Sub Main() dans laquelle vous recherchez une instance précédente et de fin s'il existe une. Cela serait éviter totalement la charge de formulaire s'il n'y avait déjà une instance en cours d'exécution. Il peut également éviter le problème de MouseMove artefact.

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic 4.0 Édition Standard
  • Microsoft Visual Basic 4.0 Édition professionnelle
  • Microsoft Visual Basic 4.0 Édition Entreprise
Mots-clés : 
kbmt kb16bitonly kbhowto kbsetup KB146907 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 146907  (http://support.microsoft.com/kb/146907/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
 

Traductions disponibles