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

  FORUM HardWare.fr
  Programmation
  Divers

  Windows: icônes, tray et plantage de l'explorer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Windows: icônes, tray et plantage de l'explorer

n°544879
LetoII
Le dormeur doit se réveiller
Posté le 20-10-2003 à 13:51:38  profilanswer
 

J'ai une petite question qui me trotte dans la tête depuis un moment, ne parvenant pas à trouver de réponse je vous la soumet:
 
Quand une appli met une icône en "tray" et que l'explorer plante et redémarre y a plus d'icône. Cependant, certaines appli arrivent à re mettre la dite icône. La question est comment font elles? Le ssytème envoie-t-il un message particulier lorqu'il redémarre l'explorer? Est ce que tout simplement ces appli testent periodiquement la présence de leur icône? Quelqu'un a-t-il une réponse?


---------------
Le Tyran
mood
Publicité
Posté le 20-10-2003 à 13:51:38  profilanswer
 

n°544881
chrisbk
-
Posté le 20-10-2003 à 13:52:45  profilanswer
 

tiens c marrant je me posais la meme question y'a pas longtemps (par contre j'ai fait aucune recherche donc on va dire que c un blue flag deguisé)

n°544889
antp
Super Administrateur
Champion des excuses bidons
Posté le 20-10-2003 à 13:54:24  profilanswer
 

Je pense que c'est l'application qui remet son (ou ses) icône. Par exemple TrayIt a une commande "Refresh Tray Icons" pour reconstruire ses icônes si jamais elles n'apparaissent plus.

n°544891
LetoII
Le dormeur doit se réveiller
Posté le 20-10-2003 à 13:55:32  profilanswer
 

chrisbk a écrit :

tiens c marrant je me posais la meme question y'a pas longtemps (par contre j'ai fait aucune recherche donc on va dire que c un blue flag deguisé)


 
Moi ça fait un an que je cherche périodiquement, j'ai fais choux blanc pour l'instant  [:spamafote]


---------------
Le Tyran
n°544905
antsite
Je me souviens
Posté le 20-10-2003 à 14:02:44  profilanswer
 

[:blueflag]

n°544909
Joel F
Real men use unique_ptr
Posté le 20-10-2003 à 14:05:56  profilanswer
 

ben si ton appli regarde periodiquement si la tache explorer est en cours de traitement, elle peut p-e traiter le cas ou elle disparait et relancer la manip de mise en tray ??? (juste une idée comme ca patapè)

n°544915
LetoII
Le dormeur doit se réveiller
Posté le 20-10-2003 à 14:07:41  profilanswer
 

Joel F a écrit :

ben si ton appli regarde periodiquement si la tache explorer est en cours de traitement, elle peut p-e traiter le cas ou elle disparait et relancer la manip de mise en tray ??? (juste une idée comme ca patapè)


 
J'ai déjà pensé à l'openprocess et au waitforsingleobject, mais j'ai jamais testé  [:ddr555]


---------------
Le Tyran
n°544920
Joel F
Real men use unique_ptr
Posté le 20-10-2003 à 14:09:13  profilanswer
 

^^ gros feignant de binome :o

n°551319
LetoII
Le dormeur doit se réveiller
Posté le 27-10-2003 à 10:57:38  profilanswer
 

J'ai enfin trouvé, en fouillant dans el code de miranda et dans la msdn:
 
http://msdn.microsoft.com/library/ [...] askbar.asp
 

Citation :

With Internet Explorer 4.0 and later, the Shell notifies applications that the taskbar has been created. When the taskbar is created, it registers a message with the TaskbarCreated string and then broadcasts this message to all top-level windows. When your taskbar application receives this message, it should assume that any taskbar icons it added have been removed and add them again. This feature generally applies only to services that are already running when the Shell begins execution. The following example shows a very simplified method for handling this case.
 


---------------
Le Tyran
n°551341
chrisbk
-
Posté le 27-10-2003 à 11:11:23  profilanswer
 

Pour aller droit au but
 
 

Code :
  1. LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam,
  2.                          LPARAM lParam)
  3. {
  4.     static UINT s_uTaskbarRestart;
  5.     switch(uMessage)
  6.     {
  7.         case WM_CREATE:
  8.             s_uTaskbarRestart = RegisterWindowMessage(TEXT("TaskbarCreated" ));
  9.             break;
  10.        
  11.         default:
  12.             if(uMessage == s_uTaskbarRestart)
  13.                 AddTaskbarIcons();
  14.             break;
  15.     }
  16.     return DefWindowProc(hWnd, uMessage, wParam, lParam);
  17. }


 

mood
Publicité
Posté le 27-10-2003 à 11:11:23  profilanswer
 

n°551500
R3g
fonctionnaire certifié ITIL
Posté le 27-10-2003 à 14:11:08  profilanswer
 

et

Code :
  1. case s_uTaskbarRestart:

ca irait pas ?

n°551505
chrisbk
-
Posté le 27-10-2003 à 14:15:56  profilanswer
 

R3g a écrit :

et

Code :
  1. case s_uTaskbarRestart:

ca irait pas ?


 
Nope les valeurs des cases dans un switch doivent etre connu en compile time

n°551506
R3g
fonctionnaire certifié ITIL
Posté le 27-10-2003 à 14:16:50  profilanswer
 

ah oui tiens :/ petite sieste alors...

n°551510
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-10-2003 à 14:19:36  profilanswer
 

On peut faire des case sur des valeurs non constantes ? :??:
 
edit: grilled de 4 minutes [:tinostar]


Message édité par antp le 27-10-2003 à 14:19:55
n°551523
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-10-2003 à 14:30:21  profilanswer
 

Ça le rend connu à la compilation ? :??:

n°551529
LetoII
Le dormeur doit se réveiller
Posté le 27-10-2003 à 14:31:42  profilanswer
 

antp a écrit :

Ça le rend connu à la compilation ? :??:


 
Ha ben non, finalement ça passe pas, désolé :D


Message édité par LetoII le 27-10-2003 à 14:32:47

---------------
Le Tyran
n°551533
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-10-2003 à 14:32:53  profilanswer
 

Si jamais il a la même valeur qu'un autre élément du switch, il se passe quoi ?
 
edit: ouais j'aurais dû quoter ta bêtise :o


Message édité par antp le 27-10-2003 à 14:33:11
n°551537
LetoII
Le dormeur doit se réveiller
Posté le 27-10-2003 à 14:34:52  profilanswer
 

antp a écrit :

Si jamais il a la même valeur qu'un autre élément du switch, il se passe quoi ?
 
edit: ouais j'aurais dû quoter ta bêtise :o


 
Comem un cons j'ai testé avec

Code :
  1. static const int i = 3;


Là forcément ça marche  [:ddr555]
 
Ha et puis il ne peut pas être égalle à un autre case du switch dans notre cas, tu est assuré que ton message est unique lorsque tu utilise RegisterWindowMessage, or comme on test que des valeurs de messages...


Message édité par LetoII le 27-10-2003 à 14:36:20

---------------
Le Tyran
n°551549
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-10-2003 à 14:41:18  profilanswer
 

Ouais enfin le compilo il va pas aller vérifier que la valeur de ta variable provient d'une fonction qui renvoie une valeur unique... Les compilateurs C++ sont assez lents comme ça, heureusement qu'ils ne doivent pas faire ce genre de tests en plus :o

n°551562
chrisbk
-
Posté le 27-10-2003 à 14:49:37  profilanswer
 

antp a écrit :

Ouais enfin le compilo il va pas aller vérifier que la valeur de ta variable provient d'une fonction qui renvoie une valeur unique... Les compilateurs C++ sont assez lents comme ça, heureusement qu'ils ne doivent pas faire ce genre de tests en plus :o


 
heuh niveau rapidité les compilos C++ digne de ce nom (ceux qui ont des PCH quoi [:joce]) se demerde plutot pas mal  

n°551564
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-10-2003 à 14:50:44  profilanswer
 

chrisbk a écrit :


heuh niveau rapidité les compilos C++ digne de ce nom (ceux qui ont des PCH quoi [:joce]) se demerde plutot pas mal  


 
Faut dire que comme point de comparaison je prends Delphi... et même avec PCH ils sont plus lents que Delphi (qui lui n'a pas de PCH :D)

n°551572
chrisbk
-
Posté le 27-10-2003 à 14:57:12  profilanswer
 

antp a écrit :


 
Faut dire que comme point de comparaison je prends Delphi... et même avec PCH ils sont plus lents que Delphi (qui lui n'a pas de PCH :D)


 
C'est tres relatif, fo vraiment voir comment l'appli est construite. Si t'as des #includes dans tous les sens (alors qu'une fine forward declaration ferait aussi bien l'affaire), une utilisation foireuse des PCH, alors ouais ca va ramer a mort...la aussi y'a de l'apprentissge a faire un truc propre


Message édité par chrisbk le 27-10-2003 à 15:00:47
n°551575
Joel F
Real men use unique_ptr
Posté le 27-10-2003 à 14:59:22  profilanswer
 

rajoute à ca une utilisation abusive des templates et tadam : 30mn de compilation pour une convolution 3x3  :sol:

n°551576
chrisbk
-
Posté le 27-10-2003 à 15:00:08  profilanswer
 

Joel F a écrit :

rajoute à ca une utilisation abusive des templates et tadam : 30mn de compilation pour une convolution 3x3  :sol:


 
tiens delphi a des templates au fait :??:
Si vi, c'est aussi bricolage-friendly que les C++ ?

n°551590
LetoII
Le dormeur doit se réveiller
Posté le 27-10-2003 à 15:14:02  profilanswer
 

Pour revenir un peu sur le sujet:
 
Pour ceux que ça intéresse, vu que le message précédament sité n'est envoyé que par les version d'IE superieur à la 4.0, pour vérifier cette version:
 
http://msdn.microsoft.com/library/ [...] ensing.asp
 
Et une interface com:
http://msdn.microsoft.com/library/ [...] s/tips.asp Mais bon vu qu'elle nécessite ie 4.0 spas très utile pour le cas qui nous intéresse :D


Message édité par LetoII le 27-10-2003 à 15:16:04

---------------
Le Tyran
n°551623
antp
Super Administrateur
Champion des excuses bidons
Posté le 27-10-2003 à 15:41:51  profilanswer
 

chrisbk a écrit :


 
tiens delphi a des templates au fait :??:
 


 
non, parfois ça manque
 
y a pas non plus de préprocesseur (juste des ifdef mais pas moyen de faire un #define cachant tout un bloc de code par ex)
 
enfin, ça plus le fait que la syntaxe soit plus stricte, c'est normal que ça compile beaucoup plus vite.

n°551946
LetoII
Le dormeur doit se réveiller
Posté le 27-10-2003 à 20:47:59  profilanswer
 

Bon j'ai testé, ça marche nickel :sol:


---------------
Le Tyran
mood
Publicité
Posté le   profilanswer
 


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

  Windows: icônes, tray et plantage de l'explorer

 

Sujets relatifs
Ajouter une tache dans le planificateur de taches Windows via le code[C/C++] compilateur windows
SWT, comment afficher des icones dans un arbre?Lancement de la JVM sous un profil Windows différent
[JAVA] PopupMenu sur un TextArea : cacher le popup windowsComment faire l'intaller d'un programme sous Windows?
[windows thread/processes] Le Sleep sous windows n'est pas précis.Code source windows CE
[PHP] authentifier un user windows (XP)est-il possible de développer une appli compatible as400/Windows ?
Plus de sujets relatifs à : Windows: icônes, tray et plantage de l'explorer


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)