Ошибка Java CreateProcess в Windows 7 UAC - PullRequest
0 голосов
/ 31 августа 2011

Я не могу программно запустить Exe на 64-битной рабочей станции Windows 7.Если UAC выключен, то Exe будет запущен из компонента.Если UAC включен, то консоль java сообщает CreateProcess error=740, The requested operation requires elevation.

Java-бин запускает Exe на рабочей станции, используя

Process p = rt.exec(args);

Have also the ProcessBuilder class.
ProcessBuilder p = new ProcessBuilder(new String[] { "cmd.exe", "/C", m_sProg, m_sParams});

Спасибо.

1 Ответ

0 голосов
/ 01 сентября 2011

Ваш .exe, похоже, требует повышения прав через встроенный манифест. Чтобы запустить его, вы должны использовать ShellExecute или ShellExecuteEx WinAPI.

Вы можете попытаться преодолеть это ограничение, используя команду start:

new ProcessBuilder(new String[] { "cmd.exe", "/C", "start", m_sProg, m_sParams});

Если вы можете изменить .exe при запуске, то удаление requestedExecutionLevel из манифеста может быть вариантом, если для запуска .exe действительно не требуются права администратора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...