Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1829 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Faire fonctionner un programme MFC/C++ dans la zone de notification

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire fonctionner un programme MFC/C++ dans la zone de notification

n°352379
banguy
Posté le 04-04-2003 à 10:21:48  profilanswer
 

Je cherche à faire tourner un prog en tache de fond. C'est un programme qui surveille un périphérique électronique (mais ca on s'en fout pour l'instant).
Comment faire pour faire tourner ce programme dans la zone de notification (zone ou se trouve l'horloge de windows pour ceux qui n'auraient pas compris), et, par la même occasion le faire démarrer en même temps que windows.
(sous windows 2000 pro).
 
Je sais que la commande à utiliser est ::Shell_NotifyIcon()
mais je n'arrive pas à l'implanter dans mon code.
 
Merci

mood
Publicité
Posté le 04-04-2003 à 10:21:48  profilanswer
 

n°352384
chrisbk
-
Posté le 04-04-2003 à 10:23:11  profilanswer
 

J'ai deja fait ce genre de sport mais je me souviens plus trop bien, pr contre :
 
 

Citation :

Je sais que la commande à utiliser est ::Shell_NotifyIcon()
mais je n'arrive pas à l'implanter dans mon code.


 
 
peut etre nous donner ton code pourrait etre utile ?

n°352394
banguy
Posté le 04-04-2003 à 10:29:37  profilanswer
 

voici la déclaration de la struct nécessaire pour appeler ::Shell_NotifyIcon();
 

Code :
  1. typedef struct _NOTIFYICONDATA{
  2.  DWORD cbSize;
  3.  HWND hWnd;
  4.  UINT uID;
  5.  UINT uFlags;
  6.  UINT uCallbackMessage;
  7.  HICON hicon;
  8.  char szTip[64];
  9. }NOTIFYICONDATA, *PNOTIFYICONDATA;


C'est extrait de MFC whith Visual C++ 5.0 (moi je suis sur 6.0 mais ca change pas énormément).
 
Et voici, dans le OnInitDialog de ma fenetre (ce qui parait logique...)
 

Code :
  1. NOTIFYICONDATA  * NIcon;
  2. (*NIcon).cbSize = /*ici je sais pas ce qu'il faut mettre */
  3. (*NIcon).hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  4. (*NIcon).hWnd = /* ici j'arrive pas à trouver */
  5. (*NIcon).szTip = "Surveillance en cours";
  6. (*NIcon).uCallbackMessage = /*ici je ne sais pas ce qu'il faut mettre non plus */;
  7. (*NIcon).uFlags = NIM_NOTIFY | NIF_TIP | NIF_ICON /* je pense que c ca */;
  8. (*NIcon).uID = 1 /* j'ai mis ca au hasard... */;
  9. ::Shell_NotifyIcon("aaaaaaa",NIcon); //et la.... ben je sais pas non plus...


 
Voila, la j'ai des erreurs... je comprends pas trop.
Je voudrais aussi qu'en faisant click droit sur l'icone qui devra apparaitre dans la zone de notification, on ait un menu avec quelques options.

n°352397
VisualC++
J'va y penser ...
Posté le 04-04-2003 à 10:30:49  profilanswer
 

Perso j'ulise un petite classe CTrayIcon (derive de CCmdTarget avec jsute constructeur/seticon et ontraynotification pour la partie recup message souris etc c tt petit) que j avais trouve sur CodeGuru y a bien longtemps.
 
Une fois l'icone mis ds la barre, tu fais un joli ShowWindow(SW_HIDE) sur ta fenetre.

n°352411
banguy
Posté le 04-04-2003 à 10:34:46  profilanswer
 

Peux tu développer un petit peu plus ta réponse stp. Merci
 
 :bounce:


Message édité par banguy le 04-04-2003 à 10:35:25
n°352421
VisualC++
J'va y penser ...
Posté le 04-04-2003 à 10:36:23  profilanswer
 

ben a part te coller le code c est dur la ;)
J essaye de te trouver le lien.

n°352425
banguy
Posté le 04-04-2003 à 10:39:52  profilanswer
 

je voudrais juste savoir comment tu link ta class CTrayIcon au reste du prog. J'ai créé cette classe, mais je vois pas ou la linker pour qu'elle apparaisse dès le démarrage du prog. Dans le OnInitDialog de la fenetre principale ??

n°352433
VisualC++
J'va y penser ...
Posté le 04-04-2003 à 10:45:43  profilanswer
 

Ah euh non moi j utilise
 

Code :
  1. #define WM_MY_TRAY_NOTIFICATION WM_USER+0
  2. constructeur > new CTrayIcon(IDR_MENUattachealicone)
  3. BEGIN_MESSAGE_MAP(CMaClasseDlg, CDialog)
  4. //{{AFX_MSG_MAP(CMaClasseDlg)
  5. ON_MESSAGE(WM_MY_TRAY_NOTIFICATION, OnTrayNotification)
  6. //}}AFX_MSG_MAP
  7. END_MESSAGE_MAP()
  8. OnInitDialog >
  9. m_ptrayIcon->SetNotificationWnd(this, WM_MY_TRAY_NOTIFICATION);
  10. m_ptrayIcon->SetIcon(AfxGetApp()->LoadIcon(IDI_ICONattache), NULL);
  11. OnTrayNotification(WPARAM uID, LPARAM lEvent)
  12. {
  13. INT iRes = m_ptrayIcon->OnTrayNotification(uID, lEvent);
  14. ..... si tu fais autre chose
  15. }


 

n°352434
banguy
Posté le 04-04-2003 à 10:48:23  profilanswer
 

c encore plus simple, effectivement, toi tu crées pas de nouveau fichier en fait... g été con...
Ben écoute merci, je v tester ca de suite. :hello:

n°352437
VisualC++
J'va y penser ...
Posté le 04-04-2003 à 10:49:26  profilanswer
 

Creer un fichier :??: euh tu as pas tout dit la :D

mood
Publicité
Posté le 04-04-2003 à 10:49:26  profilanswer
 

n°352442
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2003 à 10:54:52  profilanswer
 

j'avais expliqué la manip ici pour les Tray Messages
 
http://forum.hardware.fr/forum2.ph [...] h=&subcat=


---------------
J'ai un string dans l'array (Paris Hilton)
n°352443
banguy
Posté le 04-04-2003 à 11:00:04  profilanswer
 

VisualC++ a écrit :

Creer un fichier :??: euh tu as pas tout dit la :D


 
ben oui, quand tu veux créer une classe, tu créée un fichier.. non  :??:  A moins que tout ce que j'ai appris jusqu'à présent soit totalement dénué de sens et que je doive retourner à l'école dès aujourdui et que je n'arriverais jamais à réaliser ce putain de projet pour lequel je suis payé si mal.....    :sweat:

n°352444
VisualC++
J'va y penser ...
Posté le 04-04-2003 à 11:02:37  profilanswer
 

:lol:
 
Edit : c t pas moqueur du tout, mais je pensais pas a la creation d'une classe quand tu as dit que j ai pas cree de fichier pour ca :)


Message édité par VisualC++ le 04-04-2003 à 11:13:47
n°352452
banguy
Posté le 04-04-2003 à 11:10:09  profilanswer
 

faut m'excuser.....
Je sors à peine d'iut d'informatique. Ce qu'on nous appris était bien plus que moyen. je débute dans le MFC.
Je fais un stage au cnrs pour faire un programme de pilotage d'une caméra haute sensibilité... C pas facile, surtout que le mfc c'est pas mon truc. Moi j'adore visual basic, php/ mysql, C ,
java...
Fin voila koi... tu vois le genre...

n°352457
banguy
Posté le 04-04-2003 à 11:14:11  profilanswer
 

apparement g vraiment du mal....
J'ai essayé d'implanter ton truc...
J'ai 102 erreurs, et encore, le compilo s'arrete au dela de 100
Et les erreurs sont toutes les memes... (missing ';' before '}';)
Ca ne veut rien dire évidemment....
Je pense que ca vient du fait qu'il reconnait pas :
 

Code :
  1. new CTrayIcon(....);


 
Comment qu'on fait....


Message édité par banguy le 04-04-2003 à 11:16:53
n°352465
VisualC++
J'va y penser ...
Posté le 04-04-2003 à 11:21:58  profilanswer
 

Ben tu as marque plus haut que tu as fait une classe CTrayIcon (ou que tu l as recup)
 
donc un #include quand mm
 
 
 
Sinon, regarde le lien de Harkonen il explique tres bien.


Message édité par VisualC++ le 04-04-2003 à 11:22:28
n°352469
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2003 à 11:23:24  profilanswer
 

banguy a écrit :

apparement g vraiment du mal....
J'ai essayé d'implanter ton truc...
J'ai 102 erreurs, et encore, le compilo s'arrete au dela de 100
Et les erreurs sont toutes les memes... (missing ';' before '}';)
Ca ne veut rien dire évidemment....
Je pense que ca vient du fait qu'il reconnait pas :
 

Code :
  1. new CTrayIcon(....);


 
Comment qu'on fait....


A ma connaissance, CTrayIcon n'est pas inclus dans les MFC, ce doit être une classe récupérée sur le net.
 
Essaie ma manip, elle utilise les MFC standard.


---------------
J'ai un string dans l'array (Paris Hilton)
n°352470
VisualC++
J'va y penser ...
Posté le 04-04-2003 à 11:24:54  profilanswer
 

Non non tu as raison, CTrayIcon comme marque au debut c une classe faite a la main ou recup sur le net.
 
 
Edit : par contre c du MFC standard, juste un wrapper de Shell_Notify


Message édité par VisualC++ le 04-04-2003 à 11:26:06
n°352479
banguy
Posté le 04-04-2003 à 11:32:38  profilanswer
 

oui mais la je comprends tout de meme pas pourquoi
 
new CTrayIcon(...) ne marche pas...

n°352481
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-04-2003 à 11:34:47  profilanswer
 

banguy a écrit :

oui mais la je comprends tout de meme pas pourquoi
 
new CTrayIcon(...) ne marche pas...


parce que c'est une classe faite à la main !! qui n'existe pas tant que tu n'as pas rajouté sa déclaration et son implémentation dans ton projet !
 
au fait, j'espère que ceci est un troll :
 
http://forum.hardware.fr/forum2.php3?post=122678&cat=4


---------------
J'ai un string dans l'array (Paris Hilton)
n°352484
banguy
Posté le 04-04-2003 à 11:36:49  profilanswer
 

tu vas pas t'y mettre toi aussi...

n°352487
banguy
Posté le 04-04-2003 à 11:37:25  profilanswer
 

bon, hfr m'a gavé... merci les gars pour cette aide en C++
Mais c pas très bon esprit ici...
bye

n°352499
darklord
You're welcome
Posté le 04-04-2003 à 11:49:55  profilanswer
 

:sarcastic:


---------------
Just because you feel good does not make you right
n°352508
drasche
Posté le 04-04-2003 à 11:53:19  profilanswer
 

banguy a écrit :

Mais c pas très bon esprit ici...


tant qu'on se vante pas de ses actes litigeux, ya pas de prob :o


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°352515
Serial Cod​er
Posté le 04-04-2003 à 11:55:39  profilanswer
 

:hello:
 
Tanguy, j'ai exactement la réponse à ton problème. J'espère que ce forum ne t'a pas dégouté et que tu nous lis encore !
 
Ce que je te propose : je vais manger, et ensuite je te donne une explication ? OK ?
 
A tte ;)


---------------
Je code en série et en parallèle
n°352517
gm_superst​ar
Appelez-moi Super
Posté le 04-04-2003 à 11:56:24  profilanswer
 

banguy a écrit :

Mais c pas très bon esprit ici...


Ben écoute les règles sont affichées dans chaque catégorie, et sur S&R c'est : "pas d'incitation au piratage". Donc soit tu les acceptes et tu restes soit elles ne te plaisent pas et tu t'en vas [:spamafote]
 
Car je rappelle qu'en parlant de softs piratés (ou en se ventant d'en posséder) c'est le forum que tu mets en danger...


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
n°352519
Konar
Posté le 04-04-2003 à 11:58:42  profilanswer
 

banguy a écrit :


Code :
  1. NOTIFYICONDATA  * NIcon;
  2. (*NIcon).cbSize = /*ici je sais pas ce qu'il faut mettre */
  3. (*NIcon).hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  4. (*NIcon).hWnd = /* ici j'arrive pas à trouver */
  5. (*NIcon).szTip = "Surveillance en cours";
  6. (*NIcon).uCallbackMessage = /*ici je ne sais pas ce qu'il faut mettre non plus */;
  7. (*NIcon).uFlags = NIM_NOTIFY | NIF_TIP | NIF_ICON /* je pense que c ca */;
  8. (*NIcon).uID = 1 /* j'ai mis ca au hasard... */;
  9. ::Shell_NotifyIcon("aaaaaaa",NIcon); //et la.... ben je sais pas non plus...


 
Voila, la j'ai des erreurs... je comprends pas trop.
Je voudrais aussi qu'en faisant click droit sur l'icone qui devra apparaitre dans la zone de notification, on ait un menu avec quelques options.


 
Bah ca, des erreurs, c clair qu'y en a plein... tiens ca me donne meme pas envie de te donner le code tout fait.
 
alors voila :
http://msdn.microsoft.com/library/ [...] fyicon.asp
 
sinon, evite le pointeur inutile NIcon (surtout sans malloc)

n°352562
banguy
Posté le 04-04-2003 à 12:24:38  profilanswer
 

Konar a écrit :


 
Bah ca, des erreurs, c clair qu'y en a plein... tiens ca me donne meme pas envie de te donner le code tout fait.
 
alors voila :
http://msdn.microsoft.com/library/ [...] fyicon.asp
 
sinon, evite le pointeur inutile NIcon (surtout sans malloc)


merci, mais l'aide de microsoft ne dit rien sur les valeurs à mettre dans la structure passée en paramètre... Et moi c ca qui m'interesse...

n°352570
banguy
Posté le 04-04-2003 à 12:29:02  profilanswer
 

Serial Coder a écrit :

:hello:
 
Tanguy, j'ai exactement la réponse à ton problème. J'espère que ce forum ne t'a pas dégouté et que tu nous lis encore !
 
Ce que je te propose : je vais manger, et ensuite je te donne une explication ? OK ?
 
A tte ;)


 
je v manger aussi, mais en tout cas c cool de ta part...

n°352580
Konar
Posté le 04-04-2003 à 12:34:35  profilanswer
 

banguy a écrit :


merci, mais l'aide de microsoft ne dit rien sur les valeurs à mettre dans la structure passée en paramètre... Et moi c ca qui m'interesse...


 
http://msdn.microsoft.com/library/ [...] ondata.asp
 

n°352803
Serial Cod​er
Posté le 04-04-2003 à 14:33:25  profilanswer
 

banguy a écrit :


 
je v manger aussi, mais en tout cas c cool de ta part...


Désolé, mais je peux pas te répondre pour l'instant, j'ai bouffé mexicain ce midi (très épicé donc), et j'ai un mal au ventre à en pleurer :cry: :cry:
 
C'est con, parce que ton problème est vraiment très simple à résoudre, franchement ça me fait chier (sans jeu de mots) de pas avoir le courage de te répondre, ça se résout en 10 secondes :'(
 
Mais je vais quand même te donner l'URL d'un site qui explique les MFC de façon exhaustive, et en français ! Encore une fois désolé :sweat:
 
http://mfcforever.com/french/notifyicon.htm


---------------
Je code en série et en parallèle
n°355972
Professeur​Thibault
Apprenti Dessinateur.
Posté le 08-04-2003 à 17:39:24  profilanswer
 

Alors banguy la trime ??

n°356443
backdafuck​up
Back to da old skool
Posté le 09-04-2003 à 11:27:33  profilanswer
 

[:synth]  
Salut msieu...
Non non jtrime pas, je ultra méga trime...
Mais c bizare hfr, je pose plein de questions, mais il arrive qu'on ne les comprenne pas, et qu'on y réponde pas directement...
 :heink:  
 
C con  [:zharak]  
 
En tout cas ya plein de gens tres sympas qui font l'effort de répondre tout de meme, et ca ca le fait [:aras qui rit]

n°357816
Professeur​Thibault
Apprenti Dessinateur.
Posté le 10-04-2003 à 14:59:56  profilanswer
 

backdafuckup ca fait tres soulfly comme pseudo...
c le mystere hfr tout ca...

n°357827
backdafuck​up
Back to da old skool
Posté le 10-04-2003 à 15:03:59  profilanswer
 

ProfesseurThibault a écrit :

backdafuckup ca fait tres soulfly comme pseudo...
c le mystere hfr tout ca...


 
va vient d'un groupe de hip hop, mais tu peux pas comprendre, métalleux

n°358006
backdafuck​up
Back to da old skool
Posté le 10-04-2003 à 16:58:40  profilanswer
 

Serial Coder a écrit :


Désolé, mais je peux pas te répondre pour l'instant, j'ai bouffé mexicain ce midi (très épicé donc), et j'ai un mal au ventre à en pleurer :cry: :cry:
 
C'est con, parce que ton problème est vraiment très simple à résoudre, franchement ça me fait chier (sans jeu de mots) de pas avoir le courage de te répondre, ça se résout en 10 secondes :'(
 
Mais je vais quand même te donner l'URL d'un site qui explique les MFC de façon exhaustive, et en français ! Encore une fois désolé :sweat:
 
http://mfcforever.com/french/notifyicon.htm
 


 
 :lol:  :lol:  :lol:  
 
 
...
 
 [:zharak]  
 
you bastard.

n°363355
banguy
Posté le 16-04-2003 à 14:57:04  profilanswer
 

test

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Faire fonctionner un programme MFC/C++ dans la zone de notification

 

Sujets relatifs
[visual C++] Savoir si un programme est lancé (WinNT)[C, C++] Programme qui compte les caractères en entrée
MFC (C++)[MFC] CList et class helpers
ou faire l'initialisation ? (MFC inside)[WIN32 API] Comment lancer un programme a de son code?
Programme Java (niveau Licence Info)les evenements en MFC
Evenement cliqué sur un bouton créé par programme (MFC) ? 
Plus de sujets relatifs à : Faire fonctionner un programme MFC/C++ dans la zone de notification


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR