如何 运行 在 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);
我需要 运行 在 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);