如何 运行 在 AutoLISP 或 ObjectARX 中使用更高权限的应用程序

How to run application with elevated permissions in AutoLISP or ObjectARX

我需要 运行 在 AutoCAD/ZWCAD 中需要提升权限的应用程序。

通过 LISP,我可以运行 应用程序使用:

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

但对于需要电梯权限的应用程序 startapp returns nil 而不是 运行s.

也尝试过:

(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.

还有其他方法可以 运行 需要更高权限的外部应用程序吗?

也许你可以试试RunAs

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

当然,系统会提示您输入密码。

您可以在这里找到替代品:https://superuser.com/q/55809/60438

我发现它可以在 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);