IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Manipuler les icones dans la barre des taches en bas à droit


Sujet :

Windows

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Points : 90
    Points
    90
    Par défaut Manipuler les icones dans la barre des taches en bas à droit
    Bonjour à tous,

    Je suis actuellement en train de créer un petit programme qui devra se lancer au démarrage de Windows et surtout qui devra afficher un icone dans la barre des taches, en bas à droite. Le problème c'est que je n'ai aucune idée sur la façon de rajouter un icone dans la barre des tahces. Est-ce simplement un HWND qui a pour parent cette barre et qui a pour menu le menu qui s'affiche quand on clique à doite dessus ou est-ce que c'est plus complexe?

    Ensuite, je voudrais également savoir comment lancer un programme au démarage de Windows. J'imagine qu'il faut manipuler l'éditeur de registre, ce que je sais à peu près faire "à la main" mais pour automatiser cette tache, je n'ai aucune idée.

    Merci d'avance.

    Spartan03

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Points : 90
    Points
    90
    Par défaut
    Rebonjour, en approfondissant ma recherche, j'ai trouvé ShellNotifyIcon. Cepandant, je voudrais qu'il se comporte comme un objet HWND. C'est à dire qu'il ait une procédure de fenetre. Ansi, si on clique à gauche, une fenetre s'ouve. A droite, un menu se déroule. Si on clique sur "fermer" dans ce menu, on envoie le message WM_DESTROY à cette application et on quitte.

    J'ai retenu un argument dans la struct NOTIFYICONDATA qui est "uCallbackMessage". Je pens que c'est la solution à mon problème mais je ne sais pas comment le manipuler.

    Merci d'avance.

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    une NotifyIcon est toujours attachée à une fenêtre.
    Quand un événement se produit sur la notifyicon, c'est la fenêtre qui est prévenue, en recevant le message spécifié dans uCallbackMessage : Ses paramètres wParam et lParam indiquent ce qui s'est passé avec la NotifyIcon...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Points : 90
    Points
    90
    Par défaut
    Ok, ansi si je dis que le uCallbackMessage est égal à 4691 alors dans ma proc je pourrai écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    case 4691:
    
    switch(LOWORD(wParam))
    {
    case WM_LBUTTONDOWN:
    MessageBox(NULL,"hello","hi",MB_OK);
    break;
    }
    Parce que ce code là, apparemment ça fait rien quand je clique sur l'icone.

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Citation Envoyé par MSDN
    uCallbackMessage
    Application-defined message identifier. The system uses this identifier to send notifications to the window identified in hWnd. These notifications are sent when a mouse event occurs in the bounding rectangle of the icon, or when the icon is selected or activated with the keyboard. The wParam parameter of the message contains the identifier of the taskbar icon in which the event occurred. The lParam parameter holds the mouse or keyboard message associated with the event. For example, when the pointer moves over a taskbar icon, lParam is set to WM_MOUSEMOVE. See the Taskbar guide chapter for further discussion.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Points : 90
    Points
    90
    Par défaut
    Effectivement, mais j'ai encore un problème (désolé).

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    case WM_IBT:
    		MessageBox(NULL,"hello","hello",MB_OK);
    		switch(LOWORD(lParam))
    		{
    			case WM_LBUTTONDOWN:
    				MessageBox(NULL,"hello","hello",MB_OK);
    			break;
    		}
    	break;
    Mais lorsque je clique sur l'icone dans la barre il ne se passe rien. WM_IBT est égal à 4691.

    Merci d'avance.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Points : 90
    Points
    90
    Par défaut
    Ouf, j'ai résolu le problème, j'avais simplement oublié d'activer le uFlag "NIF_MESSAGE". Merci à tous.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 180
    Points : 90
    Points
    90
    Par défaut
    Re Bonjour.

    Je rencontre un autre problème avec mon icone . Je veux que lorsque je clique sur ce dernier, un menu s'affiche dont le coin en bas à droite ait les mêmes coordonnées que le click de souris. Le problème c'est que ces coordonnées sont envoyées au travers du lParam et que j'en ai besoin pour traiter les évènements relatifs à l'icone (click gauche par exemple).

    Ensuite, même si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TrackPopupMenu (hMenu, TPM_RIGHTBUTTON|TPM_LEFTALIGN, 10, 100, 
                     0, fenetre, &tailleMenu) ;
    J'ai un petit menu qui s'affiche en haut à droite mais il fait quelques pixels de large seulement ce qui empêche de lire son contenu.

    Merci d'avance de votre aide.

    Spartan03

Discussions similaires

  1. mettre une appli en icone dans la barre des taches
    Par oeil de nuit dans le forum Windows
    Réponses: 10
    Dernier message: 14/08/2006, 13h43
  2. Creation d'une icon dans la barre des taches
    Par Janitrix dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 22/12/2005, 22h36
  3. icone dans la barre des taches
    Par Tafid dans le forum Windows
    Réponses: 5
    Dernier message: 07/11/2005, 14h17
  4. Création de fenêtres sans icone dans la barre des taches
    Par bruce_will dans le forum Windows
    Réponses: 2
    Dernier message: 06/12/2004, 04h29
  5. Pb icone dans la barre des taches
    Par lbailler dans le forum Access
    Réponses: 4
    Dernier message: 12/11/2004, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo