L'idée de base avec la programmation shell Windows est que vous pouvez associer à ce que MS appelle actuellement un progid (par exemple Company.Type.Ver) un type de fichier donné (extension):Comment ajouter un verbe secondaire à un type de fichier dans le shell Windows?
HKCR \ txt @ = Acme .Text.1
HKCR \ Acme.Text.1 @ = Ceci est le ProgID pour les associations de fichiers texte pour Acme
Et puis Acme Corp peut mettre autant de verbes shell comme ils veulent que les sous-clés de HKCR \ Acme.Text.1 \ shell tel que HKCR \ Acme.Text.1 \ shell \ open. Mais si je suis XyzCorp, comment ajouter un verbe secondaire aux fichiers texte? Je ne veux pas usurper l'association de fichier primaire - je suis heureux pour qu'il soit associé à Acme.Text.1, mais je veux ajouter "Importer dans l'éditeur de Xyz".
je pouvais:
1. ajouter un verbe au progid Acme (par exemple HKCR \ Acme.Text.1 \ shell \ my-verbe)
2. créer une nouvelle progid sur nos deux behalfs et copier les données ACME cela, et fusionner les verbes de XyzCorp en cela
3. ajouter des verbes directement à l'extension de fichier (au moins un utilisé pour être en mesure de le faire)
4. ???
Quelqu'un connaît-il la «bonne» réponse à cette question?
EDIT: Je ne suis vraiment pas ravi de toute solution qui implique de devoir modifier le PROGID de quelqu'un d'autre. Je préférerais vraiment ajouter quelque chose - un IContextMenu ou tout ce qui est requis, en dehors du PROGID associé pour ajouter des verbes/options supplémentaires à un type de fichier donné.
Il semble que ce système est si fou qu'il est impossible de le faire lorsque des maisons de développement individuelles le détiennent et qu'il peut être supprimé ou modifié par un tel système. Cela me semble fragile (désinstaller quelque chose et pouf, votre extension de fichier cesse de fonctionner correctement, ou installer quelque chose et de même votre verbe secondaire disparaît car ext est maintenant mappé à un PROGID propriétaire différent auquel je n'ai pas ajouté notre verbe quand nous étions installé (pas, à ce moment-là, sachant quoi que ce soit sur cet autre progid encore inexistant)), et juste bête. Après tout ce temps, toutes ces versions de Windows et Microsoft n'ont jamais trouvé un moyen d'avoir des couches de gestionnaires pour un type de fichier donné? Vraiment?!?
Je viens de trouver ça ahurissant! La programmation junior 101 implique l'apprentissage de systèmes de commande ou d'autres systèmes en couches/en cascade. Les WinProcs Windows eux-mêmes sont organisés dans un modèle de modèle de commande - de sorte que, depuis le contexte de la fenêtre interne vers l'extérieur, de nombreux gestionnaires possibles reçoivent une fissure à un MSG donné. Il existe sûrement un moyen d'ajouter un verbe qui s'applique à plusieurs extensions sans outrepasser l'association progid primaire des extensions, elle-même totalement indépendante du mappage extension-> progid primaire (pour que l'utilisateur puisse installer plusieurs programmes sur temps, et toujours avoir accès à un verbe secondaire pour ce type de fichier). Je suppose que je peux regarder HKCR. * ... Je comprends qu'il est possible d'y ajouter des verbes qui s'appliquent à tous les types de fichiers. Mais alors, j'ai besoin de trouver un moyen de filtrer afin que notre verbe ne soit vraiment présent que pour les types de fichiers auxquels nous devrions appliquer ...
Cela semble extrêmement intrigant. Si cela fonctionne pour XP +, alors je suis doré! Waaaaay mieux que l'une des solutions précédentes! Bonus pour le "type perçu"! – Mordachai
@Mordachai: Cela fonctionne pour XP +; pas sûr si cela fonctionne avant XP ou si XP était quand il a été ajouté. – Boann
Cette réponse a été très utile, merci! :) – CptRobby