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

cs_bigboss9 Messages postés 162 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 20 juillet 2013 - 29 juin 2006 à 17:34
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 - 20 sept. 2008 à 01:39
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/38365-un-control-systray-et-oui-encore-un-mais-assez-complet

MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
20 sept. 2008 à 01:39
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)
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
20 sept. 2008 à 00:34
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.

++
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
19 sept. 2008 à 11:42
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
ratala Messages postés 248 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 22 juin 2008
5 avril 2007 à 17:41
Excellent, c'est super.
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
29 mars 2007 à 10:10
Salut,

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

10/10

A+
Exploreur
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
26 mars 2007 à 16:22
Wha c'était rapide ^^ bravo
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
26 mars 2007 à 15:13
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.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
26 mars 2007 à 13:44
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.
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
26 mars 2007 à 13:33
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.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
26 mars 2007 à 13:05
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).
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
26 mars 2007 à 12:44
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
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
24 mars 2007 à 01:09
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 ;)
_DoOmy_ Messages postés 15 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 17 septembre 2006
1 août 2006 à 17:30
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
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
31 juil. 2006 à 16:31
Hum, je ne constate pas ce problème chez moi, pourrais tu préciser.

Sinon, sous quel OS es-tu ?
Uvatha Messages postés 34 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 17 mai 2007
31 juil. 2006 à 16:17
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.
Uvatha Messages postés 34 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 17 mai 2007
31 juil. 2006 à 16:15
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.
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
10 juil. 2006 à 17:05
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

++
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
6 juil. 2006 à 17:21
Cela parait évident mais je précise quand même :
Oubliez le Form1.WindowState = vbMinimized
^^
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
6 juil. 2006 à 17:20
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.
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
6 juil. 2006 à 14:51
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.
kugan49 Messages postés 14 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 4 décembre 2008
6 juil. 2006 à 11:57
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.
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
6 juil. 2006 à 09:51
Problème de Focus corrigé. Mais j'ai préféré utilisé un :
Call SetForegroundWindow(UserControl.Parent.hWnd)

++
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 juil. 2006 à 15:57
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é)

++ ;)
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
5 juil. 2006 à 15:46
OK j'ai compris. Je sais pas si je pourrais faire quelques chose mais je vais essayer.
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 juil. 2006 à 12:52
pour le new form1, créé les icônes (1 par form, ou en auto), puis click sur message sur chaque form ;)
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
5 juil. 2006 à 08:09
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.
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 juil. 2006 à 07:25
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]
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
4 juil. 2006 à 16:57
kugan49>>Bug corrigé concernant la réaction de l'icone après re-création (lors d'un crash explorer).

++
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
4 juil. 2006 à 16:10
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
++
kugan49 Messages postés 14 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 4 décembre 2008
4 juil. 2006 à 15:41
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...).
yugimega Messages postés 22 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 30 juillet 2007
3 juil. 2006 à 15: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
TMONOD Messages postés 256 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 6 novembre 2009 1
1 juil. 2006 à 09:16
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...
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
1 juil. 2006 à 07:39
PS : Je suis ouvert à toute idée d'amélioration ^^

++
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
1 juil. 2006 à 07:38
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.
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 juil. 2006 à 02:20
Héhé !
cs_pluplu Messages postés 615 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 4 juillet 2012
30 juin 2006 à 19:07
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.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
30 juin 2006 à 12:28
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 ^^
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
30 juin 2006 à 00:14
Ok je jetterai un oeil demain ^^

Merci
++
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 juin 2006 à 18:33
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
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
29 juin 2006 à 18:00
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.

++
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
29 juin 2006 à 17:38
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é.
cs_bigboss9 Messages postés 162 Date d'inscription jeudi 22 janvier 2004 Statut Membre Dernière intervention 20 juillet 2013
29 juin 2006 à 17:34
Exellent ! 10/10

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