cologo
Messages postés7Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention16 septembre 2006
-
9 sept. 2006 à 18:41
cologo
Messages postés7Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention16 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 !
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 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)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
cologo
Messages postés7Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention16 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
Messages postés7Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention16 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.
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 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
cologo
Messages postés7Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention16 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 ?