如果应用程序通过 Windows Powershell 中的 Python 脚本启动,则拖放功能不起作用

如果应用程序通过 Windows Powershell 中的 Python 脚本启动,则拖放功能不起作用

我有一个 QT 应用程序,我下载并在 Windows 上启动它。如果我从 Windows 资源管理器手动启动它,我可以使用拖放来加载文件。如果我通过 Windows powershell 中的 python 脚本启动同一个应用程序,使用 调用它subprocess.run(path_to_app_executable),拖放不起作用。

是因为使用了子进程吗?在 Mac 上,我使用subprocess.run()命令open,拖放操作正常。

答案1

具有 UAC 的 Windows 系统具有“完整性级别”的概念。高级进程(当您使用“以管理员身份运行”时)标记为“高”完整性级别,而普通进程(包括您的桌面和文件管理器)则在“中”级别下运行。

低级流程无法发送数据直接与更高级别的流程联系;换句话说,他们不能做任何事情来破坏这些流程——这是对粉碎攻击

但除此之外,这还意味着它们无法发送构建拖放等功能的“窗口消息”。

相关内容