运行命令行进程作为管理Qt
Run command line process as admin Qt
我正在编写一个Qt应用程序,需要调用系统程序(netsh
)并以管理员身份运行它们。
但是,QProcess
, QDesktopServices
和system()
不允许我以管理员身份运行应用程序(即使是runas
)。
我发现唯一的解决方案是使用ShellExecute
,但它甚至不打开程序。
我的代码是
#ifdef Q_OS_WIN {
ShellExecute(0, LPCWSTR("runas"), LPCWSTR("netsh wlan start hostednetwork"), 0, 0, SW_SHOWNORMAL);
}
我也尝试使用其他选项,如open
,并尝试运行其他程序,如记事本(notepad.exe
)和控制面板(control.exe
),没有任何工作。
我也尝试添加一个清单文件,但没有解决任何问题。
我的代码中遗漏了什么吗?(欢迎举例)。
LPCWSTR("runas") -这是不正确的,您将字符串类型转换为widestring,并且可能ShellExecute将返回错误并且不启动应用程序。指定"L"前缀代替。此外,您需要拆分命令和参数,"netsh wlan start hostdnetwork"将不能作为命令名。像这样使用:
ShellExecute(0, L"runas", L"netsh", L"wlan start hostednetwork", 0, SW_SHOWNORMAL);
相关文章:
- QT:管理来自 QNetworkReply 的回复
- 如何在Qt中管理另一个窗口?
- 如何从QT中的Qthread管理MainWindow
- QT-如何处理对话框的内存管理
- Android 和 IOS 上的 Qt 会话管理
- QT中的等级管理
- 注销侏儒会话时如何从Qt应用程序执行"confirm" gnome会话管理器的对话框(不使用QSessionManager)
- 如何在不使用透明胶片的情况下创建Qt投影?(因为窗口管理器不支持)
- 在Qt中管理一个只有头的库的项目
- Qt内存管理
- 如何在崩溃时管理Qt应用程序的单个实例
- Qt如何管理从函数QItemDelegate::createEditor()返回的Widget指针的内存
- Qt应用程序中的Windows资源管理器
- 如何使用 c++ 和 Qt 管理 XML 配方
- 在Qt C++中通过类管理键盘事件
- Qt中的层管理器
- Qt创建者会话管理器错误
- 在c++中从qt获取Android帐户管理器
- 使用Qt插件管理Qt对象
- 运行命令行进程作为管理Qt