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

  FORUM HardWare.fr
  Programmation
  C++

  Permettre à une application C++ de s'icônifier (en bas à droite)...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Permettre à une application C++ de s'icônifier (en bas à droite)...

n°437062
pilou51
Posté le 23-06-2003 à 17:01:30  profilanswer
 

Voilà, tout est ds le titre, j'aimerais qu'une appli que j'ai faite en C/C++ puisse se mettre dans les icônes de la barre des tâches en bas à droite...(enfin ça peut etre en haut à gauche suivant l'organisation de votre bureau, c pas pour contrarier hein :D)...
 
Comment puis-je m'y prendre svp ?
 
Merci

mood
Publicité
Posté le 23-06-2003 à 17:01:30  profilanswer
 

n°437068
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-06-2003 à 17:04:43  profilanswer
 

Shell_Notifyicon()
 
edit: j'avais expliqué la manip ici (attention, c'est valable pour les MFC)
 
http://forum.hardware.fr/forum2.ph [...] 303&cat=10


Message édité par Harkonnen le 23-06-2003 à 17:06:43

---------------
J'ai un string dans l'array (Paris Hilton)
n°437071
skeye
Posté le 23-06-2003 à 17:07:05  profilanswer
 

plantage de drapo...ca a de bonnes chances de me servir!

n°437077
pilou51
Posté le 23-06-2003 à 17:09:46  profilanswer
 

oki merci, j'avais cherché mais pas trouvé...
et y'a pas moyen d'utiliser ça sans les MFC (koike ça semble logique d'en avoir besoin, vu qu'on touche aux fenetres win, mais bon...) ?
 
Merci :jap:

n°437082
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-06-2003 à 17:11:07  profilanswer
 

pilou51 a écrit :

oki merci, j'avais cherché mais pas trouvé...
et y'a pas moyen d'utiliser ça sans les MFC (koike ça semble logique d'en avoir besoin, vu qu'on touche aux fenetres win, mais bon...) ?
 
Merci :jap:


Si, bien sur ! Shell_Notifyicon est une fonction Win32. D'ailleurs, vu qu'elle n'est pas encapsulée par les MFC, une grande partie de ce que j'explique dans le topic est réutilisable.


---------------
J'ai un string dans l'array (Paris Hilton)
n°437090
pilou51
Posté le 23-06-2003 à 17:15:29  profilanswer
 

Oui mais mon prog n'a mm pas de fenetre propre, c un serveur qui écoute en permanence (socket en TCP), il a juste une fenetre de commandes MS DOS koi, donc je pense pas que ça soit possible, je vois pas comment gérer les HWND dans ce contexte :(

n°437095
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 23-06-2003 à 17:18:45  profilanswer
 

pilou51 a écrit :

Oui mais mon prog n'a mm pas de fenetre propre, c un serveur qui écoute en permanence (socket en TCP), il a juste une fenetre de commandes MS DOS koi, donc je pense pas que ça soit possible, je vois pas comment gérer les HWND dans ce contexte :(


Ben dans ce cas tu iconifies la fenêtre MS-DOS dans la barre des taches, t'as besoin absolument de la mettre à coté de l'horloge :??:
Sinon, le HWND tu peux le trouver via un EnumerateWindow() et un FindWindow (ou en utilisant des inspecteurs de fenêtre du style de Spy++)


---------------
J'ai un string dans l'array (Paris Hilton)
n°437096
Konar
Posté le 23-06-2003 à 17:19:23  profilanswer
 

pilou51 a écrit :

Oui mais mon prog n'a mm pas de fenetre propre, c un serveur qui écoute en permanence (socket en TCP), il a juste une fenetre de commandes MS DOS koi, donc je pense pas que ça soit possible, je vois pas comment gérer les HWND dans ce contexte :(


 
tu créés une "message-only" window.
 
http://msdn.microsoft.com/library/ [...] ssage_only
 
sinon pour gérer les messages du tray sans mfc, tu modifies ta wndproc de cette facon:
 

Code :
  1. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
  2. {
  3. switch (message)
  4. {
  5.  case WM_TRAYMSG:
  6.  {
  7.   switch (lParam)
  8.   {
  9.    case WM_LBUTTONDOWN:
  10.     break;
  11.    case WM_RBUTTONDOWN:
  12.     break;
  13.    case WM_LBUTTONDBLCLK:
  14.     break;
  15.   }
  16.  }

n°437099
pilou51
Posté le 23-06-2003 à 17:21:17  profilanswer
 

oki merci v essayer ça :)
 
Ben si je veux l'icônifier, c que le pc sur lequel doit tourner ce prog d'écoute sert pour d'autres choses, et qu'il faut pas fermer ça par erreur... hors qd ça traîne ds la barre des tâches... on a tendance à faire des gaffes  :whistle:

n°437107
Konar
Posté le 23-06-2003 à 17:25:51  profilanswer
 

pilou51 a écrit :

oki merci v essayer ça :)
 
Ben si je veux l'icônifier, c que le pc sur lequel doit tourner ce prog d'écoute sert pour d'autres choses, et qu'il faut pas fermer ça par erreur... hors qd ça traîne ds la barre des tâches... on a tendance à faire des gaffes  :whistle:  


 
bah dans ce cas tu fais "new project", tu fais "win32 project", + "empty project", tu colles tout ton source dedans en remplacant le main par le winmain, comme ca qd tu lances l'éxé, il tourne en fond, sans console ni fenetre, la seule maniere de le quitter c'est de le tuer ds le gestionnaire des taches.

mood
Publicité
Posté le 23-06-2003 à 17:25:51  profilanswer
 

n°437129
pilou51
Posté le 23-06-2003 à 17:38:09  profilanswer
 

par défaut le winmain crée pas de fenetre du tt ?? je savais pas.....
 
merci :)

n°437130
pilou51
Posté le 23-06-2003 à 17:38:45  profilanswer
 

euh...

Code :
  1. MSVCRTD.lib(wcrtexew.obj) : error LNK2001: unresolved external symbol _wWinMain@16


ça vous dit qqchose ? :(

n°437152
Konar
Posté le 23-06-2003 à 17:46:03  profilanswer
 

pilou51 a écrit :

euh...

Code :
  1. MSVCRTD.lib(wcrtexew.obj) : error LNK2001: unresolved external symbol _wWinMain@16


ça vous dit qqchose ? :(


 
va y avoir des pb d'include a mon avis...
 
qqpart il faut que tu include windows.h ou similaires, mais ca va faire des conflits avec d'autres include...
 
bref, gros bordel en vue. si t'as le courage t'y arriveras, mais tu risques d'y passer entre 1 et plein d'heures.
 
Le 1er truc a faire c'est de remplacer ton "int main()" par "int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)"


Message édité par Konar le 23-06-2003 à 17:46:57
n°437194
haazheel
Posté le 23-06-2003 à 18:06:51  profilanswer
 

http://forum.hardware.fr/icones/flag1.gif


---------------
Another .Net Blog
n°437621
pilou51
Posté le 24-06-2003 à 08:55:47  profilanswer
 

ok merci, je m'y remets ce matin :)

n°437790
gatorette
Posté le 24-06-2003 à 10:51:02  profilanswer
 

Sinon, le mieux pour ton problème est de créer ton application sous la forme d'un service si elle tourne sous NT/2000/XP. Je crois qu'il est possible de simuler un service sous 95/98/ME également.
Ainsi, tu es tranquille, ton application tournera même si personne n'est loggué et elle ne risque pas d'être arrétée par erreur (surtout si tu gères bien les autorisations sur la machine).
 
Pour ton erreur, vérifie que tu ais bien créé une fonction WinMain (comme Konar l'indique) et que le fichier la contenant est bien compilé (sous Visual, il faut qu'il fasse partie du projet).


---------------
each day I don't die is cheating
n°437950
pilou51
Posté le 24-06-2003 à 13:38:06  profilanswer
 

ça marche maintenant avec le WinMain, donc le seul moyen de le tuer est en passant par le gestionnaire des tâches. (faut y penser qd on recompile le prog ;))
 
Peux-tu m'en dire plus sur la manière de gérer l'application en tant que service stp ?
 
Merci encore  :hello:

n°437973
gatorette
Posté le 24-06-2003 à 13:46:31  profilanswer
 

Pour faire un service, le mieux est encore que tu ailles directement voir la MSDN.
Sinon, tu dois pouvoir trouver des trucs chez CodeProject ou CodeGuru.
Une autre solution est d'utiliser un soft pour le faire... Je sais que ça existe, mais je ne peut pas te citer de nom.


---------------
each day I don't die is cheating
n°437975
pilou51
Posté le 24-06-2003 à 13:48:09  profilanswer
 

oki merci v chercher un peu, parceque c vrai que ça serait mieux :)


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

  Permettre à une application C++ de s'icônifier (en bas à droite)...

 

Sujets relatifs
Récupérer les messages d'une autre application[C++] Récupérer le Hwnd d'une application lancée par une dll
cherche script ou application gerant le nombre de visite et l'iprendre une application multi-utilisateurs...
Application transformé en Applet ne marche pasapplication MFC -> pour parcourir qque chose...
Utilisation du CPU par une applicationtransformer une applet en application
[VB.net] déploiment d'application sous visual studio.netApplication d'un XSL pour créer un document XSL - help
Plus de sujets relatifs à : Permettre à une application C++ de s'icônifier (en bas à droite)...


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