Réponse acceptée !
J'ai bien peur que ce soit plus compliqué que cela...
Si tu regardes bien MSDN : (au paramètre uID de NOTIFYICONDATA)
Application-defined identifier of the taskbar icon. The Shell uses hWnd and uID to identify which icon to operate on when Shell_NotifyIcon is invoked. You can have multiple icons associated with a single hWnd by assigning each a different uID.
Donc l'ID n'est pas suffisant il te faut aussi le handler auquel est associé l'icone. Dans ton code tu récupères une fenêtre mais je ne sus pas convaincu que ce soit la bonne...
En supposant que ce soit la bonne (peu de chances - je le repète), tu peux toujours tenter un algo type force brute : tu essaies tous les ID. Avec un code du style:
const int MAX_ID = 99999;
for (icon.uID=0; icon.uID<MAX_ID; icon.uID++)
{
if ( Shell_NotifyIcon(NIM_DELETE, &icon) )
{
printf( "L'ID vaut %d\n", icon.uID );
break;
}
}
if ( icon.uID>MAX_ID )
printf( "ID non-trouvé\n" );
Et si ça marche tu auras l'ID donc plus besoin de te retaper la boucle à chaque fois.
Bon courage
On ne force pas une curiosité, on l'éveille. .................................................Daniel Pennac