2011-08-09 2 views
2

J'ai besoin d'exécuter une configuration supplémentaire après l'installation, j'ai donc créé une application console Smoll PostInstall.exe qui devrait faire le travail. J'ai besoin d'obtenir le chemin d'installation de winamp à partir du registre.InstallShield LE: RegOpenKeyEx échoue dans l'action personnalisée

Ce PostInstall.exe fonctionne correctement si je l'exécute seul. Mais si je l'utilise dans l'action personnalisée « Après enregistrement des produits », je reçois une erreur « Le système ne peut pas trouver le fichier spécifié » retour de la fonction

DWORD kres = RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Winamp",0, KEY_QUERY_VALUE, &hKey); 

Je suis 100% sûr que la clé existe - je vérifie avant que je lance l'installation. Aussi, lorsque j'exécute PostInstall.exe manuellement après l'installation, il réussit.

J'ai essayé de définir "Exécution différée" et "Exécution différée dans le contexte système" mais que n'aide pas.

Pourquoi RegOpenKeyEx échoue-t-il dans mon action personnalisée?

Répondre

1

Assurez-vous que l'installation n'est pas en cours d'élévation sous un autre compte d'utilisateur. De cette façon, votre processus d'action personnalisé ne sera pas exécuté pour un utilisateur différent ayant une ruche HKEY_CURRENT_USER différente.

De même, essayez d'obtenir l'utilisateur actuel dans votre code personnalisé et déterminez si c'est celui que vous attendez.

Questions connexes