Windows: icônes, tray et plantage de l'explorer - Divers - Programmation
Marsh Posté le 20-10-2003 à 13:52:45
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é)
Marsh Posté le 20-10-2003 à 13:54:24
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.
Marsh Posté le 20-10-2003 à 13:55:32
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
Marsh Posté le 20-10-2003 à 14:05:56
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è)
Marsh Posté le 20-10-2003 à 14:07:41
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é
Marsh Posté le 27-10-2003 à 10:57:38
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. |
Marsh Posté le 27-10-2003 à 11:11:23
Pour aller droit au but
Code :
|
Marsh Posté le 27-10-2003 à 14:15:56
R3g a écrit : et
ca irait pas ? |
Nope les valeurs des cases dans un switch doivent etre connu en compile time
Marsh Posté le 27-10-2003 à 14:19:36
On peut faire des case sur des valeurs non constantes ?
edit: grilled de 4 minutes
Marsh Posté le 27-10-2003 à 14:31:42
antp a écrit : Ça le rend connu à la compilation ? |
Ha ben non, finalement ça passe pas, désolé
Marsh Posté le 27-10-2003 à 14:32:53
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
Marsh Posté le 27-10-2003 à 14:34:52
antp a écrit : Si jamais il a la même valeur qu'un autre élément du switch, il se passe quoi ? |
Comem un cons j'ai testé avec
Code :
|
Là forcément ça marche
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...
Marsh Posté le 27-10-2003 à 14:41:18
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
Marsh Posté le 27-10-2003 à 14:49:37
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 |
heuh niveau rapidité les compilos C++ digne de ce nom (ceux qui ont des PCH quoi ) se demerde plutot pas mal
Marsh Posté le 27-10-2003 à 14:50:44
chrisbk 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 )
Marsh Posté le 27-10-2003 à 14:57:12
antp a écrit : |
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
Marsh Posté le 27-10-2003 à 14:59:22
rajoute à ca une utilisation abusive des templates et tadam : 30mn de compilation pour une convolution 3x3
Marsh Posté le 27-10-2003 à 15:00:08
Joel F a écrit : rajoute à ca une utilisation abusive des templates et tadam : 30mn de compilation pour une convolution 3x3 |
tiens delphi a des templates au fait
Si vi, c'est aussi bricolage-friendly que les C++ ?
Marsh Posté le 27-10-2003 à 15:14:02
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
Marsh Posté le 27-10-2003 à 15:41:51
chrisbk a écrit : |
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.
Marsh Posté le 27-10-2003 à 20:47:59
Bon j'ai testé, ça marche nickel
Marsh Posté le 20-10-2003 à 13:51:38
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