Приложение запускается вручную ОК, но при запуске из установщика происходит сбой (ошибка: .OCX как незарегистрированный) Почему? - PullRequest
0 голосов
/ 11 июня 2011

Наш установщик (старая версия установщика WISE) использует ShellExecute для запуска программы (MyApp.exe), которую он установил.Но когда мы делаем это, Windows 7 блокируется и говорит, что Richtx32.ocx не зарегистрирован или отсутствует компонент.

-Если я вручную запускаю MyApp.exe из Explorer, он работает нормально.-Если я запускаю файл .Bat, который запускает MyApp.exe, он работает просто отлично.-Если я перенесу свой установщик в тот же каталог, в котором MyApp.exe запускается, я получаю ту же ошибку.

  • Windows 7, 32-разрядная.
  • Старая версияRichTx32.ocx установлен в каталоге \ Windows \ System.
  • При тестировании на VMware (Windows 7, 32-разрядная, без установленного RichTxt32.ocx) эта проблема НЕ возникает.
  • RichTx32У устанавливаемого .ocx случается заглавная буква o (.Ocx), и затем система сообщает об ошибке, к которой относится my OCX (RichTx32.Ocx) или что один из его компонентов не зарегистрирован.

Одна мысль, которая у меня только что возникла, заключается в том, что установщик может быть запущен от имени администратора и, возможно, когда он запускает другое приложение, приложение запускается не от того же пользователя, но если вы запускаете из.файл bat это делает?

Ответы [ 3 ]

0 голосов
/ 23 июня 2011

попробуйте скомпилировать его как установщик, а не просто как exe .., затем установить его в свою систему .., как пакет установщика, а не просто скомпилированный exe-файл.некоторые активные элементы управления / dll / active x не будут скопированы, если вы просто сохраните их как исполняемый файл

0 голосов
/ 29 июня 2011

После установки RICHTX32.OCX в системный каталог.

1) попробуйте запустить этот код в RUN regsvr32.exe c: \ windows \ system32 \ RICHTX32.OCX или перетащите файл в REGSVR32.EXE.

2) щелкните правой кнопкой мыши на вашем EXE-приложении, перейдите в свойства, совместимость, затем установите флажок Запустить эту программу .... в режиме совместимости и на привилегированном уровне.

надеюсь, что это поможет ..,

0 голосов
/ 11 июня 2011

Это приложение об управлении доступом и административных привилегиях

Попробуйте изменить

ShellExecute (NULL, "open", szGadgetSource, NULL, NULL, SW_SHOWNORMAL);

для

ShellExecute (NULL, NULL, szGadgetSource, NULL, NULL, SW_SHOWNORMAL);

или

оказалось для контроля доступа

...