Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UN CONTROL SYSTRAY (ET OUI ENCORE UN) MAIS ASSEZ COMPLET


Information sur la source

Catégorie :Graphique Classé sous : systray, animation, crash, explorer, control Niveau : Débutant Date de création : 29/06/2006 Date de mise à jour : 26/03/2007 15:11:14 Vu / téléchargé: 4 419 / 1 064

Note :
9,29 / 10 - par 7 personnes
9,29 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (42)
Ajouter un commentaire et/ou une note


Description

Bon, ne criez pas au scandale trop vite. Je sais que le site en est plein mais ce control apporte quelques nouveautés.
Après avoir visité presque toutes les sources du site sur ce sujet... j'en ai retenu principalement 3. Celles de EBArtSoft, Yomm et Jack.
Mais même celles-ci ne me convenaient pourtant pas à 100%.

Le challenge était donc de faire une source qui réunisse les avantages des trois.
- Simple à utiliser (cf le projet d'exemple joint)
- Animation de Jack totalement automatisée (pas de code à ajouter pour l'utilisateur)
- Renvoi de tout les evenements necessaires
- J'ai également ajouté le controle d'un crash de l'explorer. L'icone est ainsi recréée automatiquement.
- Ajout également de ToolTip multilignes.

Merci de tester et de me faire part de votre avis.
 

Source

  • 'Ajout de l'icone en mode manuel
  • SysTray1.Icone_Add
  • ou
  • Systray1.Icone_Add False
  • 'Suppression de l'icone
  • SysTray1.Icone_Delete
  • 'Passage en mode automatique (mon préféré)
  • SysTray1.Icone_Add True
  • 'Affichage d'un message (ToolTip multiligne)
  • SysTray1.ShowBalloonTip "Message multiligne", "Cortex@TNT - SysTray", [TTIcon : Info]
'Ajout de l'icone en mode manuel
SysTray1.Icone_Add
ou
Systray1.Icone_Add False


'Suppression de l'icone
SysTray1.Icone_Delete


'Passage en mode automatique (mon préféré)
SysTray1.Icone_Add True


'Affichage d'un message (ToolTip multiligne)
SysTray1.ShowBalloonTip "Message multiligne", "Cortex@TNT - SysTray", [TTIcon : Info]

Conclusion

Merci à Yomm, EBArtSoft et Jack pour leurs sources dont je me suis largement inspiré.

Merci également à Renfield pour m'avoir aidé à finaliser le code.

Bonne prog
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

29 juin 2006 16:16:56 :
Fautes orthographe
29 juin 2006 17:59:47 :
Choix de la vitesse de l'animation
04 juillet 2006 16:01:41 :
- Ajout du ToolTip multiligne - Suppression de la dépendance à la classe de Renfield (pour le SubClassing)
04 juillet 2006 16:54:56 :
Correction d'un bug
06 juillet 2006 09:48:33 :
Correction du problème de Focus à la restauration de la fenetre.
06 juillet 2006 14:44:21 :
Récupération automatique de l'icone de la form parent si aucune icone n'a été définie
06 juillet 2006 17:16:14 :
Possibilité de réduire en icone à partir de n'importe quel bouton.
10 juillet 2006 17:01:55 :
Ajout de l'effet de fondu
26 mars 2007 15:11:14 :
Meilleure localisation de la barre de tache

Commentaires et avis

signaler à un administrateur
Commentaire de bigboss9 le 29/06/2006 17:34:13

Exellent ! 10/10

Ca serait bien de pouvoir personnaliser la direction, la vitesse de l'effet mais bon, c'est deja super !

signaler à un administrateur
Commentaire de bouv le 29/06/2006 17:38:08

Pour la direction, elle est calculée automatiquement en fonction de la position de la barre de tache. Essai de la changée tu verra.

Sinon pour la vitesse tu peux la modifier manuellement dans le code du controle. Mais je dois pouvoir faire quelque chose pour qu'on puisse la changer à la volé.

signaler à un administrateur
Commentaire de bouv le 29/06/2006 18:00:52

Contol UPDATED !

On peut désormais choisir la vitesse de l'animation.
Pour la direction je préfère conserver celle de la barre de tache.

++

signaler à un administrateur
Commentaire de DARKSIDIOUS le 29/06/2006 18:33:20 administrateur CS

Pas mal, tu as juste oublié de regarder ma source ;)

En la couplant avec mon bouton ajouté dans la barre de titre, ca pourrait vraiment faire une source complète !

DarK Sidious

signaler à un administrateur
Commentaire de bouv le 30/06/2006 00:14:41

Ok je jetterai un oeil demain ^^

Merci
++

signaler à un administrateur
Commentaire de MadM@tt le 30/06/2006 12:28:15

Quand il y a un crash de l'exporer les icones du systray ne sont pas recréés automatiquement ?? Faut le faire manuellement ?
J'avais jamais remarqué que les icones de mes prog ne réapparaissait pas après un crash, jvais essayer pour voir.

Sinon c'est cool d'avoir fait une source qui rassemble les avantages de toutes celles qui existaient déjà, c'est le genre de truc qu'on fait quand on fait son prog mais qui sont bien utile quand c'est déjà tout prêt tout chaud sur vbfrance ^^

signaler à un administrateur
Commentaire de pluplu le 30/06/2006 19:07:14

Super !! j'aime beaucoup la réduction de la fenêtre sans déformation et en conservant les proportions c'est bien ficelé rien à dire.

signaler à un administrateur
Commentaire de jack le 01/07/2006 02:20:57 administrateur CS

Héhé !

signaler à un administrateur
Commentaire de bouv le 01/07/2006 07:38:39

Salut, merci poru vos commentaires.

DKS>>J'aime bien ton bouton. Mais je sens que vu la façon dont j'ai organisé mon code cela va demandé beaucoup de modifications. Bien dommage que je n'ai pas vu ta source avant. Pour l'instant je ne me sens pas le courrage et le temps de l'intégrer. Mais si tu souhaite le faire, pas de pb je mettrai en release.

MadM@tt>>Oui effectivement les icones ne sont pas recrées automatiquement. On peut d'ailleurs l'observer sur beaucoup de logiciels que l'on utilise régulièrement. Kill Explorer.exe puis relance le et tu le constatera.

PLUPLU>>Pour l'animation ça c'est de Jack, je n'ai pas mis mon nez la dedans. Je n'ai fait qu'adapté à la structure de l'OCX.

Jack>>euh... Merci. Ta source est la seule que j'ai laissée intacte. Pour le reste je me suis BEAUCOUP inspiré mais j'ai presque tout refait.

signaler à un administrateur
Commentaire de bouv le 01/07/2006 07:39:16

PS : Je suis ouvert à toute idée d'amélioration ^^

++

signaler à un administrateur
Commentaire de TMONOD le 01/07/2006 09:16:34

Bonjour,
C'est dommage que les meilleures sources soient encore en VB6...
Je vais essayer de transcrire la tienne en .net. Si j'y parviens (lol) je la proposerai.
Le systray est super pratique su réseau quand il est nécessaire de surveiller des robots, ou "moulinettes" qui tournent sur un serveur. A bientôt peut-être...

signaler à un administrateur
Commentaire de yugimega le 03/07/2006 15:57:57

Salut,

Pour completer ta source tu peux allé voir sur le site de vbaccelerator a cette adresse : http://www.vbaccelerator.com/home/VB/Code/Libraries/Shell_Projects/SysTray_-_The_Easy_Way/article.asp
Tu y trouvera comment mettre une bulle d'info avec le systray...

Bonne continuation,
Yugimega

signaler à un administrateur
Commentaire de kugan49 le 04/07/2006 15:41:12

Bonjour,
Je testais ton controle de crash avec ton projet de TEST mais lorsque que je "kill" explorer.exe et que je le relance, l'icone revient bien dans la barre des taches mais le fait de cliquer dessus ne fait plus rien... A voir.
Sinon c'est du beau boulot 8/10 (Le bouton "mini-minimize" de Dark Sidious finirait completement cette source...).

signaler à un administrateur
Commentaire de bouv le 04/07/2006 16:10:43

YUGIMEGA>>C'est fait j'ai aujouté le ToolTip multiligne. Mais, je n'ai pas utilisé ton lien vers vbaccelerator, mais Renfield m'a donné un coup de clavier ^^

J'ai également supprimé la dépendance à sa classe de SubClassing grace à sa dernière source :
http://www.vbfrance.com/code.aspx?ID=38442

Concernant le bouton mini-minimize, comme je l'ai dit plus haut. Il necessiterai beaucoup trop de modifications dans mon code. Il serai en effet en totale opposition avec mon mode Auto.

Merci pour vos commentaires
++

signaler à un administrateur
Commentaire de bouv le 04/07/2006 16:57:44

kugan49>>Bug corrigé concernant la réaction de l'icone après re-création (lors d'un crash explorer).

++

signaler à un administrateur
Commentaire de PCPT le 05/07/2006 07:25:51 administrateur CS

salut,
malheureusement, même problème que beaucoup de systrays (tous?)...

Private Sub Command5_Click()
    Dim f As New Form1
    f.Show
End Sub
là on voit le souci avec le balloon.
pour les steps de l'anim, peut-être ne pas laisser tant de marge... (ou çà vient de chez moi, trop = assez moche).

erreur (event) balloon : le click droit renvoie un TimeOut au lieu d'un Hide
sinon c'est propre, commenté où il faut. 9/10

++
PCPT  [AFCK]

signaler à un administrateur
Commentaire de bouv le 05/07/2006 08:09:05

PCPT>>Je ne vois pas le problème ici :
Private Sub Command5_Click()
    Dim f As New Form1
    f.Show
End Sub

Sinon, pour les steps de l'animation, j'ai effectivement laissé pas mal de marge. Pour une animation assez fluide, il faut réduire le temps de latence quand on augmente le nombre d'etapes. Après chacun fait comme bon lui semble.

Pour la click droit sur le Baloon j'avais remarqué. Meme erreur quand on clique sur la croix aavec le bouton gauche (renvoi TimeOut). Si j'ai le temps je regarderai ça de plus près.

signaler à un administrateur
Commentaire de PCPT le 05/07/2006 12:52:14 administrateur CS

pour le new form1, créé les icônes (1 par form, ou en auto), puis click sur message sur chaque form ;)

signaler à un administrateur
Commentaire de bouv le 05/07/2006 15:46:13

OK j'ai compris. Je sais pas si je pourrais faire quelques chose mais je vais essayer.

signaler à un administrateur
Commentaire de PCPT le 05/07/2006 15:57:19 administrateur CS

un petit point également (facile à modifier) : le focus est perdu lors du réaffichage de la form en fin d'anim.
un usercontrol.parent.zorder vbbringtofront en fin de restauration devrait suffir... (pas testé)

++ ;)

signaler à un administrateur
Commentaire de bouv le 06/07/2006 09:51:45

Problème de Focus corrigé. Mais j'ai préféré utilisé un :
Call SetForegroundWindow(UserControl.Parent.hWnd)

++

signaler à un administrateur
Commentaire de kugan49 le 06/07/2006 11:57:20

Bonjour,

Cette source est vraiment intéresante, dans la poursuite de mes tests j'ai vu 2 bugs :
- si une application utilise un bouton avec pour commande : "Form1.WindowState = vbMinimized"
alors l'ocx ne réagit pas (en mode auto bien entendu).
- lorsque le composant systray1 n'a pas d'icone définie une erreur surgie (erreur 91 dans la procédure "UpdateNID") Peut on essayer de récupérer dans ce cas l'icone du form diminué ?

Voila ce sera tout.
Bravo encore pour cette belle source qui me permet de me familiariser avec les ocx.

signaler à un administrateur
Commentaire de bouv le 06/07/2006 14:51:42

KUGAN49>>Je viens d'ajouter la récupération automatique de l'icone de la form parent.
Elle est récupérée en deux temps :
- Quand on ajoute le control sur la form.
- Au moment où on demande la création (manuelle ou auto) de l'icone (si pas d'icone défini) (ce qui voudrait dire qu'on l'a supprimé manuellement)

Par contre pour l'histoire du "Form1.WindowState = vbMinimized", j'ai pas encore trouvé. Je regarde vers WM_GETMINMAXINFO, mais les parametres (lParam) changent dès qu'on relance l'application ??? Et pas de wParam (valeur 0).
Je n'arrive pas à intercepter le message.

signaler à un administrateur
Commentaire de bouv le 06/07/2006 17:20:17

Bon j'ai contourné le problème. On peut désormais réduire une fenêtre directement en icone à partir de n'importe quel bouton.

Il faut pour cela :

- Activer le mode auto
- Placer le code suivant

Private Sub MonBouton_Click()
    Call SysTray1.Form_To_Icon
End Sub

Je n'étais pas obligé d'imposer le mode auto, mais j'ai préfèré. Donc comme pour le bouton réduire de la form, on a droit à l'animation que si on est au auto.

signaler à un administrateur
Commentaire de bouv le 06/07/2006 17:21:10

Cela parait évident mais je précise quand même :
Oubliez le Form1.WindowState = vbMinimized
^^

signaler à un administrateur
Commentaire de bouv le 10/07/2006 17:05:08

Salut à tous,

Je viens d'ajouter un nouvel effet. Il est désormais possible de choisir entre :

- l'animation vers le SysTray (par Jack)
- un effet de fondu

PS : J'ai par contre changé l'appel de
SysTray1.Form_To_Icon
par
SysTray1.Form_Hide

++

signaler à un administrateur
Commentaire de Uvatha le 31/07/2006 16:15:48

Bug: Si tu cliques sur la form alors qu'elle est en "Effet de fondu", elle redevient normale jusqu'à ce que l'effet de fondu soit terminé, puis elle devient ensuite minimized/maximized selon le cas.

signaler à un administrateur
Commentaire de Uvatha le 31/07/2006 16:17:37

Désolé pour le double post, mais je voudrais corriger ce que j'ai dit plus haut, c'est seulement lorsque la form "fade out" que le bug survient.

signaler à un administrateur
Commentaire de bouv le 31/07/2006 16:31:18

Hum, je ne constate pas ce problème chez moi, pourrais tu préciser.

Sinon, sous quel OS es-tu ?

signaler à un administrateur
Commentaire de _DoOmy_ le 01/08/2006 17:30:52

TMONOD : En .NET le controle Systray est déjà intégré et marche pas mal
Bouv : J'adooore ta source
>>> Idée perso pourquoi ne pas ajouter un toaster (style les notifications MSN)? peut même te filer une source pour ça si tu veux

signaler à un administrateur
Commentaire de MadM@tt le 24/03/2007 01:09:47

Salut Bouv,

Génial ton OCX, y'a pas à dire (j'adore le mode auto :p). J'ai remarqué que la modification des étapes et intervalles pour l'animation ne sont pas pris en compte, sauf quand la fenetre est minimisée dans le systray (en mode automatique en tout cas).

Sinon je me suis permis de le réutiliser dans un programme, je voulais savoir si ça te dérangeait ? (auquel cas je modifierai mon programme sans tarder).
Il est à l'adresse :
http://www.vbfrance.com/code.aspx?ID=41943

Voilà merci ;)

signaler à un administrateur
Commentaire de bouv le 26/03/2007 12:44:32

MADM@TT>>Aucun problème pour réutiliser ce code, il est là pour ça.
En plus j'ai vu que tu as pris le soin de citer cette source.

Par contre j'ai pas bien compris ton problème avec les étapes et intervalles...

++
Bouv

signaler à un administrateur
Commentaire de MadM@tt le 26/03/2007 13:05:42

Ok merci ^^

Pour le problème des étapes, c'est que (dans ton projet a toi) si je change le nombre d'étapes et intervalles (pour le mettre au minimum par exemple), et ben ça ne marche que pour la minimisation, le nombre d'étape pour le réagrandissement de la fenetre restera le meme (en mode auto en tout cas).

signaler à un administrateur
Commentaire de bouv le 26/03/2007 13:33:03

Hum ! Très bizarre, chez moi cela fonctionne bien.

-Je lance le projet, je me met en mode 'Animation vers SysTray' car il est plus facile de voir la durée de l'animation.

-Je clic sur Mode Auto puis je réduis et reagrandie la fenetre.

-Je modifie la durée des intervalles et je recommence et je vois une nette différence.

Dis m'en plus si le problème persiste.

signaler à un administrateur
Commentaire de MadM@tt le 26/03/2007 13:44:26

Ah ok ça vient de l'animation en fondu, et seulement pour le ragrandissement, effectivement y'a pas de problème avec l'animation vers le systray. Par contre chez moi l'animation vers le systray (très jolie d'ailleurs) ne converge pas vers le systray (qui est en bas à droite) mais converge vers en haut à gauche de l'écran.

signaler à un administrateur
Commentaire de bouv le 26/03/2007 15:13:47

Problème de fondu corrigé (lors de la restauration de la fenetre).
Problème de localisation de la barre de tache également corrigée.

S'il y à d'autres bug merci de me les communiquer.

signaler à un administrateur
Commentaire de MadM@tt le 26/03/2007 16:22:52

Wha c'était rapide ^^ bravo

signaler à un administrateur
Commentaire de Exploreur le 29/03/2007 10:10:56

Salut,

Bravo Bouv.. Rien à dire de spécial si ce n'est que c'est impécable...

10/10

A+
Exploreur

signaler à un administrateur
Commentaire de ratala le 05/04/2007 17:41:18

Excellent, c'est super.

signaler à un administrateur
Commentaire de MadM@tt le 19/09/2008 11:42:25

Salut Bouv,

Alors j'ai un problème quand j'utilise ton contrôle pour un programme qui se lance au démarrage de Windows (dossier démarrage du menu démarrer). L'icône n'apparait pas dans le systray, alors que si le lance manuellement, l'icône apparait bien et tout tourne nickel. C'est assez gênant car généralement les programmes qui restent dans le systray se lancent au démarrage de Windows, et la il est impossible de les fermer à part en terminant le processus.

Voilà, si tu as une piste de solution ça pourrait m'aider. Merci

PS : si tu veux voir comment j'utilise le systray (mais je pense l'utiliser correctement), voici une source qui a ce problème :
http://www.vbfrance.com/codes/WIN-OPTIONS-AVANCEES-SUR-FENETRES-PROCESSUS-WINDOWS-CPU_47970.aspx

signaler à un administrateur
Commentaire de bouv le 20/09/2008 00:34:51

Peut-être que ton prog se lance avant la création de la barre de tâche ??
Essai de mettre un timer pour le lancement de l'icone.
Sinon, je suis désolé mais en ce moment je n'ai vraiment pas le temps de faire plus pour toi (+70h/sem). Vive les 35h.
Si tu trouves quelques chose, tiens moi quand même au courant.

++

signaler à un administrateur
Commentaire de MadM@tt le 20/09/2008 01:39:37

Ok pas de problème, merci quand même. Je vais peut-être regarder du côté d'une temporisation avant création de l'icone (ou alors check à intervalles réguliers que l'icone existe... je vais voir)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

SYSTRAY APRES PLANTAGE DE EXPLORER.EXE [ par sn0wb0ard3r ] Bonjour tout le monde...Je sais pas si vous avez remarqué, mais quand vous avez une action dans le systray (en bas à droite...) Et que explo prob avec le shokwave [ par seedorf ] salut, j'ai un prob avec le control shokwave, c''est que qd j'affiche une animation qui a un arrière plan blanc par exemple et ensuite j'affiche une a Insertion d'un control vb .net sur internet explorer [ par omat ] J'ai un petit soucis avec un control utilisateur en VB .net: Je doit absolument le metre dans internet explorer mais, a la diférence de vb6 avec les O Besoin d'aide pour le systray [ par nairolf_25 ] Voila, ce que je voudrais faire c'est un programme qui se lance en même temps qu'internet Explorer,et qui ajoute à ce dernier une barre d'outils avec PB "internet explorer script error" dans un Webbrowser ! [ par njeune ] Bonjour,Je dev actuellement un soft qui parse des pages web pour recup des infos, mais l'une des pages que je parse est normalement dans une frame et Utiliser l'explorer de Windows pour récupérer un chemin??? [ par cissou06 ] Bonjour à tous!Je voudrais savoir s'il est possible de récupérer le chemin complet d'un fichier grâce à l'explorer. Je m'explique, j'ai écrit: Je ne trouve Microsoft Calendar Control 8.0 dans le VB de Access 2000 [ par Gronimo ] Bonjour, Je voudrais transferer une application de access 97 en access 2000 mais celui ci utilisait la librairie "Microsoft Calendar Control 8.0" dans PictureBox et control Image [ par pinje ] Bonjour a tous,Sur ma Form, j'ai un control PictureBox (Picture1) et un control Image (Image1) dans laquelle j'ai au prealable charge une image que je Terminer explorer.exe [ par hansmeier ] Bonsoir,Comment on fait en VB ou DOS pour termine un preocessus ??taskkill ne marche pas ! ssl et VB [ par alain34 ] J'essaye de faire un post d'un document xml vers une URL. J'arrive a faire ca en utilisant soit winsock soit un control browser derriere un proxy.Lors


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :