2010-10-20 4 views
0

Je travaille actuellement sur l'apprentissage de différents aspects de WINAPI, y compris les fonctionnalités introduites dans Windows 7 .. L'un d'entre eux utilise un GUID comme identifiant pour une icône de notification.Windows 7 NotifyIcon GUID spoof-protection

Comme il peut être lu sur le MSDN, le GUID est lié à l'exécutable par le chemin, la première fois que l'icône de notification est ajoutée. Cette page en question promet de plus amples informations sur le problème dans la documentation de Shell_Notifyicon(), mais je n'y trouve aucune autre information.

Comment les utilisateurs sont-ils supposés pouvoir afficher les icônes de notification à partir d'un exécutable qui a été déplacé?

Répondre

2

Il est documented:

Si le chemin doit être modifié, l'application doit effacer la informations de Registre GUID existant avant déplacer le fichier binaire à un nouveau emplacement et réinscrivant avec un nouveau GUID . Tous les paramètres associés à l'enregistrement GUID d'origine seront perdus.

Cela se produit également dans le cas d'une installation côte-à-côte . Lorsque traitant d'une installation côte à côte , les nouvelles versions de l'application doivent mettre à jour le GUID de le fichier binaire.

Remarque La seule exception à un fichier déplacé se produit lorsque l'original et déplacé des fichiers binaires sont Authenticode signés par la même société . Dans ce cas, les paramètres sont conservés pendant le déplacement.

La mécanique de l'application "effacement des informations de registre GUID existantes" est peu, pas claire, pas claire. Je partirais de l'hypothèse que cela n'arrive pas souvent. Donc, nouveau guid ou un certificat.

+0

Merci de préciser l'emplacement de cette information, mais il doit certainement y avoir un moyen plus facile pour l'utilisateur de déplacer l'exécutable que d'avoir à demander au développeur une nouvelle construction (ou mettre à jour l'application.) – DNW

+0

essayer de repenser à la dernière fois que j'ai déplacé une application installée. Non, ma mémoire me manque. Cela ne marche plus de nos jours. Désinstallez, réinstallez, le programme d'installation génère un nouveau guid. Pas tout à fait sûr si je comprends complètement cela, mais sûrement les fournisseurs qui doivent s'inquiéter d'obtenir leurs icônes de notification usurpées signent déjà leurs applications. –

+0

Le problème est que l'icône sera associée au répertoire dans lequel vous avez construit l'application. – SChepurin