InstallShield LE: RegOpenKeyEx се проваля при персонализирано действие

Трябва да изпълня допълнителна конфигурация след инсталирането, така че създадох малко конзолно приложение PostInstall.exe, което трябва да свърши работата. Трябва да получа пътя за инсталиране на winamp от системния регистър.

Този PostInstall.exe работи добре, ако го стартирам сам. Но ако го използвам в персонализирано действие „След регистриране на продукта“, получавам грешка „Системата не може да намери посочения файл“, върната от функцията

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

100% съм сигурен, че ключът съществува - проверявам го преди да стартирам инсталацията. Също така, когато стартирам PostInstall.exe ръчно след инсталирането, той успява.

Опитах се да задам „Отложено изпълнение“ и „Отложено изпълнение в системен контекст“, но това не помага.

Защо RegOpenKeyEx се проваля в моето персонализирано действие?


person JustAMartin    schedule 09.08.2011    source източник


Отговори (1)


Уверете се, че инсталацията не се повишава под друг потребителски акаунт. По този начин вашият персонализиран процес на действие няма да бъде изпълнен за различен потребител, който има различен кошер HKEY_CURRENT_USER.

Освен това опитайте да получите текущия потребител във вашия персонализиран код и определете дали това е този, който очаквате.

person cosmin    schedule 22.08.2011