[R] Actualiser IconTray
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Actualiser IconTray
Bonsoir à tous,
Je cherche à actualiser un IconTray que j'ai générer avec l'UDF ModerMenuLib.
Je n'arrive à rien... y-a-til une commande pour le faire ?
D'avance merci
Je cherche à actualiser un IconTray que j'ai générer avec l'UDF ModerMenuLib.
Je n'arrive à rien... y-a-til une commande pour le faire ?
D'avance merci
Modifié en dernier par Rapace15 le lun. 14 juin 2010 16:59, modifié 1 fois.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Actualiser IconTray
A 17h14, vous dites : http://www.autoitscript.fr/forum/viewto ... 462#p32462
Et ici, à 17H51 vous avez un problème !!!
17H51 - 17H14 = 37mn
Vous ne croyez pas que 37mn c'est un peut court comme travail personnel ?
Et ici, à 17H51 vous avez un problème !!!
17H51 - 17H14 = 37mn
Vous ne croyez pas que 37mn c'est un peut court comme travail personnel ?
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Actualiser IconTray
Parce que je pensais qu'il ne s'agissait pas du même problème.... Le post que vous mentionnez cherchait à mettre des icônes sur un IconTray. Et effectivement, la réponse qui m'a été donnée m'a grandement aidé (au passage merci à vous et à SagePourpre). Maintenant, s'il faut attendre une journée pour poster sur votre forum, je le ferai...Tlem a écrit :A 17h14, vous dites : http://www.autoitscript.fr/forum/viewto ... 462#p32462
Et ici, à 17H51 vous avez un problème !!!
17H51 - 17H14 = 37mn![]()
Vous ne croyez pas que 37mn c'est un peut court comme travail personnel ?
Effectivement mon dernier post sur le sujet précédent est à 17H14, mais le post d'avant où j'ai répondu à l'élément de réponse donné par SagePourpre est à 13H39... 17h51 - 13H39 = 4H12
De plus, est-il possible de travailler sur plusieurs sujets simultanément ? J'en suis capable et il me semble que vous aussi puisque vous répondez souvent à plusieurs sujets à quelques minutes d'intervalles.
Je cherche juste à justifier cet écart qui effectivement est très court, mais l'agressivité n'est souvent pas la meilleures des réponses (me semble-t-il).
Re: [..] Actualiser IconTray
Bon, certes ça n'était pas bien compliqué, mais n'y a-t-il pas plus simple que ça ?
Merci d'avance.
Code : Tout sélectionner
_TrayIconDelete($MonIconTray) ; Je masque l'IconTray actuel
Run(@ScriptFullPath) ; Je relance mon script
exit(0) ; je quitte le script actuel
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Actualiser IconTray
Ce n'était absolument pas de l'agressivité, mais tout simplement une remarque.Rapace15 a écrit :l'agressivité n'est souvent pas la meilleures des réponses (me semble-t-il).
A la lecture de vos messages, à 17H14, vous remerciez de l'aide en expliquant que cela fonctionne 'du feu de dieu'.
Je suppose donc qu'à cet instant, vous avez téléchargé et essayé l'UDF ModerMenuLib.
37 mn plus tard, vous signalez un problème lié à vos recherches. Je suppose donc que vous vous êtes retrouvé confronté à un problème dans cet espace de temps.
Ce qui m'amène à penser que vous avez cherché une solution, mais que cette recherche n’a pas durée plus de 37mn ... Ce qui me parait un peut juste.
Je n'ai rien contre vous, je fait simplement remarqué que parfois les recherches de solutions sont un peut légères et que l'on à trop tendance à écrire un message qui souvent (en témoigne votre réponse http://www.autoitscript.fr/forum/viewto ... 487#p32487) trouve sa réponse dans les 24 heures qui suivent.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Actualiser IconTray
Suivant vos conseils, j'ai attendu un peu avant de marquer ce post comme résolu...
en fait la méthode que j'ai donné me pose un problème... Je ne sais pas pourquoi et encore moins comment, mais en faisant comme cela : la commande me lance une ancienne version du programme (cf les deux a propos retournés) !
Je ne sais pas si c'est important, mais mon programme compilé se trouve dans %userprofile%\Menu Démarrer\Programmes\Démarrage lorsque je le mets ailleurs, il n'est même pas relancé.
Je n'y comprends plus rien...
Bien sur entre les deux versions de grandes avancées ont été faites
Merci de votre aide.
en fait la méthode que j'ai donné me pose un problème... Je ne sais pas pourquoi et encore moins comment, mais en faisant comme cela :
Code : Tout sélectionner
Run(@ScriptFullPath) ; Je relance mon scriptJe ne sais pas si c'est important, mais mon programme compilé se trouve dans %userprofile%\Menu Démarrer\Programmes\Démarrage lorsque je le mets ailleurs, il n'est même pas relancé.
Je n'y comprends plus rien...
Bien sur entre les deux versions de grandes avancées ont été faites
Merci de votre aide.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Actualiser IconTray
Il n'y a pas trop de logique à votre problème, mais au cas ou, essayez de remplacer votre Run par une des deux lignes suivante :
@ScriptFullPath renvoi le chemin complet de l'exécutable avec le nom de celui-ci. Donc en fait il pointe sur lui-même. Mais bien évidement il faut que celui-ci soit compilé pour pouvoir tester dans les bonnes conditions. 
Code : Tout sélectionner
Run(@ScriptFullPath, @ScriptDir)
; Ou
Run('"' & @ScriptFullPath & '"', '"' & @ScriptDir & '"')Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Actualiser IconTray
Même résultat. voici le code exact que j'utilise :
Quelqu'un pourrait-il confirmer ma "théorie de l'échec" ?
en fait lorsque je le relance, il ne se lance pas (puisqu'il est lancé) et le exit le ferme.
Je pensais donc passé par une fonction qui créerai mon iconTray, et lorsque je clique sur actualiser, il efface bien mon icontray, m'affiche bien l'icon, mais les commandes ne fonctionnent plus (il ne passe plus dans ma fonction de gestion des évènements.
Voici ma fonction d'actualisation (case $Actual
Lorsque je retourne sur l'iconTray, la gestion des évènements semble être déactivée...
Code : Tout sélectionner
$InstDir = @ScriptDir
$MonScript = '"' & $InstDir & '\SysTray.exe"'
Run($MonScript, '"' & $InstDir & '"') ; Je relance mon script
exit (0) ; je quitte le script actuel
en fait lorsque je le relance, il ne se lance pas (puisqu'il est lancé) et le exit le ferme.
Je pensais donc passé par une fonction qui créerai mon iconTray, et lorsque je clique sur actualiser, il efface bien mon icontray, m'affiche bien l'icon, mais les commandes ne fonctionnent plus (il ne passe plus dans ma fonction de gestion des évènements.
Voici ma fonction d'actualisation (case $Actual
Code : Tout sélectionner
Func MenuEvents()
global $Msg = @GUI_CtrlId
Local $cmd = $commands.Item($Msg)
MsgBox(0,"je péasse","ici avec " & $Msg)
Switch $Msg
Case $GUI_EVENT_CLOSE, $ExitGui
; On ferme le A propos
GUISetState(@SW_HIDE)
Case $aboutItem
about()
Case $Actual
_TrayIconSetState($TrayIcon1, 2) ; Hide icon
; réinitialisation de l'icontray
$TrayIcon1 = 0
$commands=0
CreateTray()
_TrayIconSetState($TrayIcon1, 2) ; Show icon
Case $ExitItem
ExitScript()
Case $MajItem
VerifMaj(true)
Case Else
ShellExecute($cmd)
EndSwitch
EndFunc ;==>MenuEvents
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Actualiser IconTray
Je ne comprend pas la deuxième partie de votre problème !!!
Par contre votre code :n'a aucun intérêt, car si pour une raison ou une autre l'exécutable ne porte pas le même nom, alors le code ci-dessus ne fonctionnera plus ...
Donc remplacez les trois premières lignes par :qui fonctionne parfaitement chez moi. 
Par contre votre code :
Code : Tout sélectionner
$InstDir = @ScriptDir
$MonScript = '"' & $InstDir & '\SysTray.exe"'
Run($MonScript, '"' & $InstDir & '"') ; Je relance mon script
exit (0) ; je quitte le script actuelDonc remplacez les trois premières lignes par :
Code : Tout sélectionner
Run(@ScriptFullPath, @ScriptDir) ; Je relance mon scriptThierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Actualiser IconTray
OK effectivement cela marche... Mais autre problème : Je me retrouve avec 2 IconTray lancées.
Mon programme se retrouve plusieurs fois dans la liste des process, j'ai donc décidé de Killer le process sur lequel je suis, ma fonction actualiser devient ceci
Ça a l'air de fonctionner, mais si tu vois un "défaut", peux-tu me le signaler ? Merci encore de ton aide précieuse.
Mon programme se retrouve plusieurs fois dans la liste des process, j'ai donc décidé de Killer le process sur lequel je suis, ma fonction actualiser devient ceci
Code : Tout sélectionner
Case $Actual
$nProc = ProcessExists(@ScriptName) ; Je récupère le PID de l'IconTray actuelle
Run(@ScriptFullPath, @ScriptDir) ; Je lance une nouvelle IconTray
_TrayIconDelete($TrayIcon1) ; J'efface l'IconTray Initiale
ProcessClose($Pid) ; Je clos le process de l'IconTray Initiale
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Actualiser IconTray
Normalement, ceci suffit :Par contre, il se peut que vous voyez quand même un double icône dans le systray. Mais si vous passez la souris dessus, un des deux disparaitra ...
Code : Tout sélectionner
Case $Actual
Run(@ScriptFullPath, @ScriptDir)
Exit(0)Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Actualiser IconTray
J'avais plusieurs process dans mon gestionnaire de tache. C'est pourquoi j'ai géré avec un ProcessClose().
Pour moi le problème est résolu.. Merci de votre aide.
Pour moi le problème est résolu.. Merci de votre aide.

