我有一个QT应用程序,可以在Windows上下载并启动。如果从Windows资源管理器手动启动它,则可以使用拖放功能加载文件。如果我从Windows powershell通过python脚本启动了相同的应用程序subprocess.run(path_to_app_executable)
,则无法通过调用它,并且拖放操作无效。
是因为使用了子流程吗?在Mac上,我subprocess.run()
与open
命令一起使用,并且拖放效果很好。
带有UAC的Windows系统具有“完整性级别”的概念。高架进程(当您使用“以管理员身份运行”时)被标记为“高”完整性级别,而正常进程(包括桌面和文件管理器)则在“中”级别下运行。
较低级别的流程无法将数据直接发送到较高级别的流程;换句话说,他们无法采取任何措施破坏这些进程-这是对粉碎攻击的缓解。
但除此之外,这还意味着它们无法发送基于诸如拖放之类的东西的“窗口消息”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句