begin process at 2012 02 14 03:13:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

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

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


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :5 188 / 1 176

Auteur : bouv

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
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

Les Membres Club peuvent 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

 Sources du même auteur

Source avec Zip Source .NET (Dotnet) ADO.NET SANS DOULEUR
Source avec Zip Source avec une capture Source .NET (Dotnet) OCR (UTILISATION DE TESSNET2.DLL)
Source avec Zip Source avec une capture Source .NET (Dotnet) LISTVIEWEX
Source avec Zip Source avec une capture Source .NET (Dotnet) SPAM ANTI SPAM
Source avec Zip Source .NET (Dotnet) UTILISER ADO.NET COMME EN ADO (RECORDSET)

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN GIF ANIMÉ par Le Pivert
Source avec une capture GRAPH PHP COURBE DE CHARGE par s.defaye
Source avec Zip Source avec une capture BOULE DE CRISTAL par BLUEBIBUBBLE
VB6 - DÉPLACEMENT D'UN CONTRÔLE SUR UN SEGMENT DE DROITE DÉL... par ucfoutu
Source avec Zip Source .NET (Dotnet) APPLICATION DE DESSIN par fsafsafsaf

 Sources en rapport avec celle ci

Source avec Zip FONCTIONS PRATIQUE POUR LISTVIEW par Galactus13
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLSTARS EN RÉPONSE À JAKNIGHT007 par bigboss9
Source avec Zip Source avec une capture EDITEUR DE BBCODE & ENVOI MAIL ANIMÉ PAR L'AGENT MERLIN LE M... par hackoo
Source avec Zip SYSTRAY ET PLANTAGE D'EXPLORER.EXE par clementio
Source avec Zip SYSTRAY + ANIMATION ENTRE FORME NORMALE ET ICONE par jack

Commentaires et avis

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 !

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é.

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.

++

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

Commentaire de bouv le 30/06/2006 00:14:41

Ok je jetterai un oeil demain ^^

Merci
++

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 ^^

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.

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

Héhé !

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.

Commentaire de bouv le 01/07/2006 07:39:16

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

++

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...

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

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...).

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
++

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).

++

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]

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.

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 ;)

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.

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é)

++ ;)

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)

++

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.

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.

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.

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
^^

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

++

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.

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.

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 ?

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

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 ;)

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

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).

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.

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.

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.

Commentaire de MadM@tt le 26/03/2007 16:22:52

Wha c'était rapide ^^ bravo

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

Commentaire de ratala le 05/04/2007 17:41:18

Excellent, c'est super.

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

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.

++

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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,496 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales