Я использую следующий скрипт для запуска исполняемого файла от имени администратора:
#include "ifx.h"
export prototype MyFunction(HWND);
///////////////////////////////////////////////////////////////////////////////
//
// Function: MyFunction
//
// Purpose: Calls into Companion to execute the detect camera and all init setup
// code
//
///////////////////////////////////////////////////////////////////////////////
function MyFunction(hMSI)
begin
if REMOVEALLMODE ==0 then //only run if they are installing the product
LAAW_SHELLEXECUTEVERB = "runas";
LaunchApplication (INSTALLDIR ^ "Companion.exe",
"-detect -test -wsdl -exit -nimbus",
"",
SW_NORMAL,
0,
LAAW_OPTION_WAIT_INCL_CHILD | LAAW_OPTION_USE_SHELLEXECUTE);
endif;
end;
В XP приведенный выше скрипт откроет диалоговое окно, спрашивающее пользователя, от какого пользователя должен запускаться исполняемый файл. Это позволяет им выбрать администратора для запуска исполняемого файла. Однако в Windows 7 ничего не происходит. Установка ничего не запрашивает у пользователя, и установка завершается неудачей.
Любые идеи о том, почему это может быть, или любые другие предложения о том, как запустить исполняемый файл в качестве администратора?