RAFRAICHIR LA BARRE DES TACHES

Ulala2 Messages postés 86 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 décembre 2006 - 10 nov. 2006 à 10:34
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 - 18 avril 2010 à 23:54
Bonjour,

je cherche le moyen de rafraichir la barre des taches (systray) de windows.

j'essaye par findwindow et sendmessage mais je ne trouve pas de message correspondant.

Une idée ?

merci d'avance.

20 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
10 nov. 2006 à 10:37
Rafraichir la barre des taches ??? Pourquoi faire ?

Normalement c'est Windows qui s'en charge tout seul comme un grand

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
Ulala2 Messages postés 86 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 décembre 2006
10 nov. 2006 à 10:46
Bonjour,

oui tout à fait.

le problème, c'est que j'ai une barre d'outils dont le dossier est situé sur un lecteur réseau, et si à un moment donné le serveur est redémarré ou perte du réseau alors j'ai toujours le nom de la barre d'outils, mais plus les doubles chevrons qui permettent de voir le contenu du dossier.


ce que je souhaite donc, c'est rafraichir en quelques sorte la barre d'outils afin d'avoir accès à nouveau au contenu du répertoire.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 41
10 nov. 2006 à 10:57
Excuse moi, j'ai pas les idées très claiers ce matin, mais la barre d'outils est dans ton appli. Au pire tu la rafraichie qu'elle est activée.

C'est quoi le rapport avec la barre des taches de Windows ?

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
Ulala2 Messages postés 86 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 décembre 2006
10 nov. 2006 à 11:01
bonjour,

bon ok.

Tu sais la barre grise ou y'a le bouton démarrer ? et bien c'est cette barre la que j'ai envie de rafraichir, plus exactement une barre d'outils que j'ai ajouté (clique droit -> barre d'outils ->nouvelle barre d'outils).

j'espère que cette fois je suis plus clair.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
10 nov. 2006 à 11:13
Une solution (à essayer... je ne l'ai pas zsswayée moi-même...)  :
Cacher la barre des tâches et la réafficher aussitôt après.

Inspire toi de ceci  (utilise un bouton de commande pour déclencher, par exemple) et essaye, pour voir si ta barre se rafraichit :

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long


Private Sub Form_Activate()
  Dim X As Long, fenhwnd As Long, fen As String, ret As Long  fen Space(256): fen "Shell_TrayWnd"
  fenhwnd = FindWindow(fen, vbNullString) ' pour définir le handle de systray
  ret = ShowWindow(fenhwnd, 2) ' il faut d'abord la "montrer", pour le cas où elle serait "masquée"
                                 'par l'utilisateurs (choix windows, en dur)
  DoEvents
  ret = ShowWindow(fenhwnd, 0) ' on cache la barre des tâches
  depart = Timer
  While Timer < depart + 5 ' on attend ici 5 secondes, par exemple
    DoEvents
  Wend
   ret = ShowWindow(fenhwnd, 1) ' on affiche la barre des tâches
End Sub


 
0
Ulala2 Messages postés 86 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 décembre 2006
10 nov. 2006 à 11:32
Bonjour,

j'ai essayé ce genre de code, mais cela ne force pas le rafraichissement des barre d'outils mais juste de la cacher et de la réafficher.
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
10 nov. 2006 à 11:47
Lu..... tente avec ca
LockWindowUpdate =  fonction permet de désactiver (ou réactiver) le rafraîchissement d'une fenêtre

Private Declare Function LockWindowUpdate Lib "user32" Alias "LockWindowUpdate" ( ByVal hwndLock As Long)As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Sub Form_Activate()
LocWindowUpdate FindWindow("Shell_TrayWnd", vbNullString)Doevents
' Débloque les mises à jour
LockWindowUpdate 0
End sub
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
10 nov. 2006 à 11:48
dans la form activate il manque le "k" de LockWindowUpdate à remettre
et fait un saut de ligne pour mettre Doevents en dessous
0
Ulala2 Messages postés 86 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 décembre 2006
10 nov. 2006 à 11:52
bonjour,

oui je m'en étais apercu :) pas de pb

mais désolé, cela ne fonctionne pas non plus.
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
10 nov. 2006 à 11:55
bon ...voila une autre ...une méthode plus hard
direction gestionnaire de tache
dans les processus , tu kille ton explorer.exe
et tu le réactive
0
Ulala2 Messages postés 86 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 décembre 2006
10 nov. 2006 à 11:58
non plus, j'ai essayé.

je trouve pleins de codes pour rafraichir l'horloge, les petites icones du systray, le nom du bouton démarrer ...
(essayé sans succès au cas ou)

mais encore rien pour les barre d'outils.
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
10 nov. 2006 à 12:03
Re
on tente autre chose ?

tu peux toujours essayer d'envoyer un message WM_PAINT à la fenêtre du systray pour la rafraichir.
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
10 nov. 2006 à 12:07
Parce qu'il ne s'agit pas simplement d'un rafraichissement mais de bien autre chose.

Je ne sais pas ce qu'affiche ta barre des tâches, mais j'ai l'impression de ce que ce n'est pas elle qui est concernée mais le résultat de son utilisation...
A traiter en activation et gestions d'erreurs, peut-être ?...
0
Ulala2 Messages postés 86 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 décembre 2006
10 nov. 2006 à 12:20
si tu veux reproduire ce que j'essaye de faire, ajoute un lecteur réseau.

puis ajoute une nouvelle barre d'outils en faisant clique droit -> nouvelle barre d'outils et choisis un répertoire situé sur le lecteur réseau.

puis perd la connexion au réseau, en choisissant une IP hors de la plage habituelle. puis remet la bonne IP de suite.

tu verras que les dossier qui était dans la nouvelle barre d'outils n'y sont plus. mais le titre de la barre reste.

ce que je veux éviter, c'est désactiver la barre, et la remettre ce qui est fastidieux.
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
10 nov. 2006 à 13:01
J'ai bien compris !
Mais : au moment ou tu "installes" ta barre des tâches, des messages Windows sont traités par Windows...
Il n'y a alors pas 36 solutions :
Soit (solution la moins complexe) gérer avec un timer et la gestion d'erreurs et décider du maintien ou non de cette barre
Soit (solution complexe) gérer les messages Windows
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
10 nov. 2006 à 13:11
En attendant de trouver une meilleure solution, bloque la mise à jour de ta boite à outils avec LockWindowUpdate <-je sais c'est pas super....sinon tu peux tres bien te faire toi meme par le code cette boite à outils...pour ton histoire c'est plus un bug de windows que autre chose
0
Ulala2 Messages postés 86 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 décembre 2006
10 nov. 2006 à 14:44
que veux-tu dire par "gérer avec un timer et la gestion d'erreurs et décider du maintien ou non de cette barre
" ?
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
10 nov. 2006 à 18:05
salut,
je te laisse voir pour la récupération du handle.
en attendant tu peux essayer avec WM_PAINT (comme Le cancre te l'a suggéré)...

sur une Form, pose un timer.
F5, place la souris sur la barre des tâches, et attend 3 secondes....

Option Explicit
Private Const WM_PAINT =  &HF
Private Type POINTAPI
    X As Long
    Y As Long
End Type
'
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As
Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) 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 Sub Form_Load()
    Timer1.Interval = 3000
End Sub
'
Private Sub Timer1_Timer()
    Timer1.Enabled = False
    Dim tPos As POINTAPI, lH&
    
    Call GetCursorPos(tPos)
    lH = WindowFromPoint(tPos.X, tPos.Y)
    Me.Caption = "En Cours, hWnd =
" & lH
    
    Call SendMessage(lH, WM_PAINT, 0&, 0&)
End Sub

<small>Coloration
syntaxique automatique [AFCK] </small>
       

qu'est-ce que çà donne?
++
PCPT   [AFCK]
<hr size ="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
Ulala2 Messages postés 86 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 décembre 2006
10 nov. 2006 à 19:51
bonjour,

merci pour ta réponse, mais ca n'a pas l'air de marcher.

par contre, j'ai réussi une fois, mais ca doit être le hasard, en supprimant la connexion manuellement (deconnecter un lecteur réseau) puis en le reconnectant, puis WM_PAINT.

j'ai essayé via la programmation, avec la commande NET USE /delete puis NET USE [file://\\lepartage\lepath \\lepartage\lepath] ... blabla mais rien à faire.

ca doit bien être possible, ca à marché une fois :)
0
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
18 avril 2010 à 23:54
Hello,
Ulala2 as tu réussis à rafraichir la barre des taches depuis le temps ? Car la solution m'intéresse. Merci
0