Je sais que tous les programmes et mises à jour installés peuvent être trouvés à la clé HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall dans le registre. Mais comment puis-je différencier les programmes installés des mises à jour installées?Liste des programmes installés/mises à jour qui peuvent être désinstallés
3
A
Répondre
1
Je crois que les mises à jour ont une valeur pour (Default) qui commence généralement par KB. Une installation réelle aurait un DisplayName. En outre, je voudrais ignorer les choses avec SystemComponent mis à 1.
0
Appelez MsiEnumProducts() vous donnera le code produit de tous les produits installés sur le système. Pour chaque produit installé, appelez MsiGetProductInfo() vous donnera des informations sur ce produit.
Cette solution est plus simple que d'utiliser une solution basée sur le registre.
This devrait être un bon point de départ:
Je crois que vous pouvez appeler C++ fonctions de C#.
Questions connexes
- 1. LINQ to SQL: propriétés des propriétés qui peuvent être null
- 2. Des liens HTML peuvent-ils être ajoutés à SWT StyledText?
- 3. Puis-je obtenir une liste de lignes avec des valeurs varchar qui ne peuvent pas être converties en datetime?
- 4. Si vous recherchez une structure de données qui est une carte, mais dans laquelle les clés peuvent être des valeurs, les valeurs peuvent être des clés
- 5. Comment supprimer l'affichage des valeurs répétitives dans les tables html qui peuvent être triées?
- 6. Liste/Détail Différentes fenêtres peuvent-elles être synchronisées et databound avec la même collection?
- 7. Exposer des objets (DataContracts) qui ne peuvent pas être directement utilisés par un service WCF?
- 8. Les mappeurs O/R qui peuvent mettre à jour le schéma de base de données automatiquement?
- 9. mes programmes peuvent-ils accéder à plus de 4 Go de mémoire?
- 10. Les formulaires liés aux jeux d'enregistrements ADO pouvant être mis à jour ne peuvent pas être mis à jour lorsque la source inclut un JOIN
- 11. Des annotations peuvent-elles être utilisées pour l'injection de code?
- 12. Combien d'instructions peuvent être conditionnelles dans MySQL?
- 13. Les formulaires IntraWeb peuvent-ils être synchronisés à la demande?
- 14. MSBuild - comment copier des fichiers qui peuvent exister ou non?
- 15. Comment puis-je faire GNAT générer la liste des programmes?
- 16. Comment obtenir une liste des utilisateurs qui peuvent se connecter localement sur Windows?
- 17. Comment des événements comme CancelEventArgs peuvent-ils être utilisés?
- 18. Existe-t-il de bonnes implémentations XmlMembershipProvider et XmlRoleProvider qui peuvent être utilisées à des fins commerciales?
- 19. Quels types d'exécutables peuvent être décompilés?
- 20. Les méthodes Web peuvent-elles être surchargées?
- 21. Mise à jour XmlDocument LINQ (peut-être)
- 22. comment les modules peuvent être liés
- 23. Les autorisations requises ne peuvent être acquises
- 24. les deux boutons radio peuvent être sélectionnés
- 25. pourquoi certains courriels ne peuvent être atteints?
- 26. Les opérateurs Ruby peuvent-ils être aliasés?
- 27. Can TFS ou Visual Studio peuvent me rappeler des problèmes qui doivent être marqués comme étant terminés avant une vérification
- 28. Tous les pilotes disponibles pour ODBC vers Sybase qui peuvent être utilisés avec QTP?
- 29. Création d'un événement qui déclenche lorsqu'une liste est mise à jour
- 30. Comment les champs de Grails représentés par une liste déroulante peuvent-ils être rendus facultatifs?
Cela semble être une approche raisonnable. Un examen de mon propre registre confirme que les mises à jour ont une valeur KB * pour (par défaut). – Corin