Как запустить приложение с повышенными разрешениями в AutoLISP или ObjectARX - PullRequest
0 голосов
/ 02 марта 2020

Мне нужно запустить приложение, которое требует повышенных разрешений в AutoCAD / ZWCAD.

С помощью LISP я могу запустить приложение, используя:

(startapp "C:\\[path]\\Application.exe")

Но для приложения, требующего разрешения на повышение прав startapp возвращает nil и приложение не запускается.

Пробовал также:

(setq Shell (vlax-get-or-create-object "Wscript.Shell"))
(setq updater(vlax-invoke-method Shell 'Exec (strcat path "Appname.exe" ) ) )
(vlax-release-object Shell)

, но я получил:

*error*: Automation error : WshShell.Exec : The requested operation requires elevation.

Так что любой другой способ запустить внешнее приложение требующих повышенных разрешений?

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Я обнаружил, что это можно сделать как в LISP, так и в C ++ ObjectARX, так:

LISP:

(startapp "C:\\[path]\\run.bat")

и в файле run.bat

CALL "C:\[path]\Application.exe"

работает нормально на моем сайте

ObjectARX C ++

CString AppPath = _T("C:\\[path]\\");
CString App = AppPath + _T("Application.exe");
HINSTANCE aplication = ShellExecute(0, _T("open") , App , NULL , AppPath , SW_SHOWNORMAL);
0 голосов
/ 02 марта 2020

Может быть, вы можете попробовать RunAs?

(startapp "runas /user:administrator C:\\[path]\\Application.exe")

Конечно, вам будет предложено ввести пароль.

Вы можете найти альтернативы здесь: https://superuser.com/q/55809/60438

...