Comment restaurer une application reduite dans le "system tray"

Résolu
cologo Messages postés 7 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 16 septembre 2006 - 9 sept. 2006 à 18:41
cologo Messages postés 7 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 16 septembre 2006 - 16 sept. 2006 à 14:33
Bonjour,

     À partir d'une programme que je suis en train de faire, j'aimerais utiliser une (très intéressante) loupe que j'ai trouvé sur internet. Lorsqu'on démarre le programme de loupe, elle va se "cacher" dans le "system tray". En temps normal, lorsqu'on désire l'utiliser, on clique sur l'icône en question (dans le "system tray"). Une fois à l'écran, il suffit de cliquer sur un bouton de la souris pour qu'elle retourne se cacher dans le "system tray".

     Le problème c'est que je dois cacher la barre des tâches. Comme je ne vois plus le "system tray", je ne vois plus l'icône de la loupe non plus. J'ai donc besoin d'aide pour savoir comment, par programmantion (VB6), je peux l'activer (comme si j'avais cliqué sur l'icône dans "system tray").

    J'aimerais aussi savoir comment on peut avoir la liste des applications qui  se trouvent actuellement dans le "system tray". (pour pouvoir démarrer la loupe si elle n'y est pas).

      La loupe utilisée est "Virtual Magnifying Glass" qu'on retrouve sur le site http://magnifier.sourceforge.net/ et elle est tout à fait gratuite ! À mon avis, c'est la loupe qui est la plus évidente et naturel à utiliser... mais ce n'est que mon avis...

Merci d'avance pour votre aide très précieuse et très appréciée !

Cologo

10 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
16 sept. 2006 à 09:59
salut,

et ça :

Private Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
Private
Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal
bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

    keybd_event vbKeyMenu, MapVirtualKey(vbKeyMenu, 0), 0, 0  ' alt down
    keybd_event vbKeyControl, MapVirtualKey(vbKeyControl, 0), 0, 0
    keybd_event vbKeyE, MapVirtualKey(vbKeyE, 0), 0, 0
    keybd_event vbKeyE, MapVirtualKey(vbKeyE, 0), 2, 0
    keybd_event vbKeyControl, MapVirtualKey(vbKeyControl, 0), 2, 0
    keybd_event vbKeyMenu, MapVirtualKey(vbKeyMenu, 0), 2, 0  ' alt up

ShareVB
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
10 sept. 2006 à 14:36
salut,
désolé de ne pas répondre... mais si tu fais une appli, pourquoi n'intègres-tu pas ta propre loupe... ?
c'est le genre de code très facile à réaliser (sans compter qu'il y a déjà des exemples dispos...)

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
cologo Messages postés 7 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 16 septembre 2006
11 sept. 2006 à 03:44
Bonjour,

    Les exemples de loupe que j'ai trouvé jusqu'à maintenant sont pour des loupes qui sont fixes à l'écran et qui montrent la région autour du pointeur de la souris. Il y a donc une zone de l'écran, sous l'espace utilisé par cette loupe, qui est constamment cachée. C'est quand même pas mal, mais la loupe "Virtual Magnifying Glass" se promène à l'écran en remplaçant le curseur de la souris et elle nous montre la région sous cette loupe. Il n'y a donc pas d'espace caché. 

     Pour le moment j'ai mis une loupe de ce genre (fixe) en attendant de réussir à faire bouger ma loupe ou d'avoir de l'aide pour faire fonctionner la loupe "Virtual Magnifying Glass" à partir de mon code. Je suis donc quand même intéressé si quelqu'un a une bonne idée pour faire sortir cette merveille du "system tray" ....tel le génie de la bouteille !

Cologo
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
12 sept. 2006 à 16:44
salut,

pour la liste des icônes du tray :
http://www.vbfrance.com/codes/SAVOIR-QUEL-PROGRAMME-APPARTIENT-ICONE-ZONE-NOTIFICATION-TRAY_24852.aspx

pour envoyer un message, regarder dans cette source "l'affichage du menu"

ShareVB
0

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

Posez votre question
cologo Messages postés 7 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 16 septembre 2006
14 sept. 2006 à 05:02
Bonjout ShareVB

     Je suis allé voir le code en question. Je peux effectivement lister la lister des "process" qui sont dans le "system tray" avec un certain nombre d'informations. Cependant, je ne vois pas de source "affichage du menu" dont vous faites mention.

   Lorsque vous dites de regarder dans cette source "pour envoyer un message", serait-il possible de me donner plus d'informations. Quelle sorte de message faut-il envoyer à l'application pour la restaurer à sa taille normale ?

   J'apprécierais beaucoup si vous pouviez éclairer ma chandelle un peu plus.

Cologo
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
14 sept. 2006 à 18:00
salut,

euh en fait, quand tu cliques à droite sur une ligne de la liste, ca affiche le menu contextuel de l'application...c'était plutôt ExecuteContextMenu...

dans ton cas, ça pourrait être :

'permet d'afficher le menu contextuel de l'icone
Public Sub ExecuteApp(ByVal hwnd As Long, ByVal uCallBackMessage As Long, ByVal uID As Long)
    'on envoie une message de notification
    PostMessage hwnd, uCallBackMessage, uID, ByVal WM_LBUTTONDOWN
    PostMessage hwnd, uCallBackMessage, uID, ByVal WM_LBUTTONUP
End Sub

à appeler avec pour NT/XP :
ticons(x).hwnd
ticons(x).uCallBackMessage
ticons(x).uID

avec pour 9x/ME :
sys.lpsysListHeader.lpNotifyDataList(x).NotifyDataA.hwnd
sys.lpsysListHeader.lpNotifyDataList(x).NotifyDataA.uCallBackMessage
sys.lpsysListHeader.lpNotifyDataList(x).NotifyDataA.uID

ShareVB
0
cologo Messages postés 7 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 16 septembre 2006
15 sept. 2006 à 03:39
Bonjour,

    C'est intéressant, ça approche de ce que j'ai besoin mais ... ce n'est pas encore tout à fait cela. Avec ce code j'accède au menu contextuel de l'application où je dois "encore" choisir d'agrandir l'application. J'aimerais pouvoir cliquer sur une icône (l'image d'une loupe par exemple) et que ça restore l'application à l'écran, directement, sans autre "clic" ou choix à faire (comme si je cliquais sur l'icône de l'application dans le "System Tray"). Cela correspond au premier choix du menu contextuel.

    Je viens aussi de me rendre compte qu'on peut faire un <CTRL>e qui restore aussi l'application en question. J'ai tenté d'utiliser la commande SendKeys pour envoyer ces 3 clés avec :

sendkeys ("^%e")   ou encore sendkeys ("^(%)e")   ou encore sendkeys ("(^)(%)e") 

mais mon XP reste sourd ... et le genie reste caché dans la bouteille). Quelqu'un aurait-il une suggestion sur une ou l'autre de ces options ?

Merci d'avance pour votre précieuse aide !!!

Cologo
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 25
15 sept. 2006 à 09:51
salut,

pourquoi pas : sendkeys ("^(%e)")

ShareVB
0
cologo Messages postés 7 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 16 septembre 2006
16 sept. 2006 à 04:53
Bonjour,

    Malheureusement .... ça ne marche pas plus...

Merci quand même pour la suggestion :-)

Cologo
0
cologo Messages postés 7 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 16 septembre 2006
16 sept. 2006 à 14:33
Merveille ! ÇA MARCHE !

     Merci ShareVB...... j'ai beaucoup apprécié ton aide ! Je vais pouvoir continuer mon code

Cologo
0
Rejoignez-nous