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.NET Discussion :

Probleme de rafraichissement d'un NotifyIcon


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 25
    Par défaut Probleme de rafraichissement d'un NotifyIcon
    Bonjour a tous,

    je me suis lancer dans un dévelloppement ultra "simple" pour un amis afficher l'état de sont clavier wirless sous W7.(Avec Service parametrage etc...)

    Mais là problème pas de rafraichissement des icon dans le systray sauf a passer la souris sur l'icone?

    je me suis dit c'est le service pas de liaison avec le bureau sous W7.
    J'ai donc fait la même chose dans une application WinForm.
    et bien là même Probleme.

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    Public Class Form1
        Public FlagRun As Boolean = True
        Public Tb As Short = 0
        Private Declare Function GetKeyboardState Lib "user32" (ByRef pbKeyState As Byte) As Long
     
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Juste pour affiche la fenetre de démarrage que quelques secondes
            Tb = 0
            ' un petit menu sur tous les Icone pour Fermé L'application
            Me.Num.ContextMenuStrip = Me.ContextMenu1
            Me.Maj.ContextMenuStrip = Me.ContextMenu1
            Me.Def.ContextMenuStrip = Me.ContextMenu1
            '
            Me.Num.Text = "KeysStatut 1"
            Me.Maj.Text = "KeysStatut M"
            Me.Def.Text = "KeysStatut S"
            ' J'initialise les icon de la barre de notification
            Me.Num.Icon = My.Resources.NumOn ' New Icon("NumOn.ico")
            Me.Maj.Icon = My.Resources.MajOn ' New Icon("MajOn.ico")
            Me.Def.Icon = My.Resources.DefOn 'New Icon("DefOn.ico")
            'Parametrage de mon Timer
            Me.Timer1.Interval = 1000
            Me.Timer1.Enabled = True
            Me.Timer1.Start()
        End Sub
     
        Private Sub ExistToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExistToolStripMenuItem.Click
            ' Fermeture brutale de l'appli
            Application.Exit()
        End Sub
     
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Dim Key(256) As Byte 'Pour GetKeyboardState
            Static Dim M, N, D As Int16 'Pour facilité le debug
            'Arret du Timer
            Timer1.[Stop]()
            'C'est le petit compteur qui ferme la fenetre aprs 4 seconde
            If Tb = 4 Then
                Me.WindowState = FormWindowState.Minimized
                Me.Hide()
                Tb += 1
            ElseIf Tb < 4 Then
                Tb += 1
            End If
            ' Lecture de l'état du Clavier
            Dim x As Long = GetKeyboardState(Key(0))
            'Gestion des icone en fonction de l'état du clavier
            If N <> Key(&H90) Then
                N = Key(&H90)
                If N = 1 Then
                    Num.Icon = My.Resources.NumOn 'New Icon("NumON.ico")
                    Num.ShowBalloonTip(1500, "NumLook", "ON", ToolTipIcon.Info)
                Else
                    Num.Icon = My.Resources.NumOF 'New Icon("NumOF.ico")
                    Num.ShowBalloonTip(1500, "NumLook", "OFF", ToolTipIcon.Info)
                End If
            End If
            If M <> Key(&H14) Then
                M = Key(&H14)
                If M = 1 Then
                    Maj.Icon = My.Resources.MajOn 'New Icon("MajON.ico")
                Else
                    Maj.Icon = My.Resources.MajOf 'New Icon("MajOF.ico")
                End If
            End If
            If D <> Key(&H91) Then
                D = Key(&H91)
                If D = 1 Then
                    Def.Icon = My.Resources.DefOn 'New Icon("DefON.ico")
                Else
                    Def.Icon = My.Resources.DefOf 'New Icon("DefOF.ico")
                End If
            End If
            'redemarage du timer
            Timer1.Start()
        End Sub
     
     
        Private Sub Form1_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
            'ja' fai cela apres avoir lu dans une discution que cela résolvait les PB de rafraichiossement des Icone mais pas chez moi
            If (Me.WindowState = FormWindowState.Minimized) Then
                Me.Hide()
                Num.Visible = True
                Maj.Visible = True
                Def.Visible = True
            End If
     
        End Sub
    End Class
    Il y bien sur un peut de code inutile car j'ai fait plusieur essais après avoir lu un nombre impressionnant de Discussion, FAQ et tuto

    Si quelqu'un à une réponse je finirais moin bête et cela me ferais plaisir.

  2. #2
    Membre émérite Avatar de -N4w4k-
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2011
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2011
    Messages : 545
    Par défaut
    Salut,

    Je ne sais pas si tu as vu cette partie de la FAQ C#: Comment modifier dynamiquement l'icône d'un NotifyIcon ?

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2011
    Messages : 25
    Par défaut
    Bonjour et Merci pour la réponse,

    Oui J'avais bien lue cette Faq. Mon Source utilise le même principe pour les NotifyIcon.
    Bon J'ai continué à fouillé et je me suis apercu que le Tick du Timer N'était appelé que lorsque ma souris était sur L'icon de notiofication ?!! C'est un Systèm.Windows.Forms.Timer

    Je l'ai donc remplacé par un System.timers.timer et là plus de problème je rentre bien dans le Timer à chaque interval. et mes icon se mettent bien à jour.

    a part un petit PB sur le GeyKebordState je devrais pourvoir terminer ce petit Programme rapidement

    Merci !

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

Discussions similaires

  1. [Image] Probleme de rafraichissement
    Par leyee dans le forum 2D
    Réponses: 4
    Dernier message: 31/10/2005, 22h26
  2. Probleme de rafraichissement Fenetre Win32 ...
    Par miaw dans le forum OpenGL
    Réponses: 1
    Dernier message: 09/05/2005, 08h59
  3. Probleme de rafraichissement d'un BDGrid
    Par marmotte dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/05/2004, 18h07
  4. Probleme de rafraichissement
    Par glRaZ dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/03/2004, 14h07
  5. [MFC] probleme de rafraichissement d'une image
    Par Vestaproman dans le forum MFC
    Réponses: 6
    Dernier message: 09/01/2004, 23h59

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