2010-10-29 3 views
0

J'ai un programme C++ 32 bits qui recueille des données de diagnostic pour aider à dépanner notre logiciel. Je voudrais à exporter une certaine sous-arbre du registre - quelque chose comme:Comment lire et exporter un sous-arbre du registre Windows sans exécuter Regedit?

regedit.exe /e ExportResult.reg HKEY_LOCAL_MACHINE\SubTreeIWantToExport 

Le problème est Regedit aura probablement besoin d'altitude sur Vista et priviledges ci-dessus et l'utilisateur exécutant mon programme pourrait ne pas avoir assez de droits pour que mais aura probablement assez de droits pour lire à partir de ce sous-arbre. En outre, je prévois des problèmes subtils avec SysWOW64 sur les systèmes 64 bits. L'exécution de Regedit est donc une mauvaise option.

Bien sûr, mon programme pouvait lire le registre lui-même et produire en quelque sorte un équivalent d'un fichier .reg, mais l'implémentation de cette fonctionnalité réinventerait la roue.

Existe-t-il un autre moyen de lire et d'exporter une sous-arborescence de Registre Windows à partir de mon programme?

Répondre

2

Il n'y a pas d'API Win32 ou .Net à simple fonction pour l'exportation/importation de registre.

Vous pouvez le faire quelque chose comme this mais je pense que vos exigences sont d'éviter la force brute. Cependant, toute solution que vous pourriez proposer nécessite de s'appuyer sur les API Win32 sous-jacentes, tout comme regedit.

Questions connexes