首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >系统进程可以与非系统进程共享数据吗?

系统进程可以与非系统进程共享数据吗?
EN

Stack Overflow用户
提问于 2013-11-23 01:07:49
回答 1查看 264关注 0票数 1

我试图使用QSharedMemoryQClipboardSYSTEM进程(运行在WinSta0\\Winlogon桌面上)和普通用户进程之间共享数据,但两者都无法与运行在普通桌面上的其他non-SYSTEM进程共享数据。我相信这是因为WinSta0\\Winlogon桌面是一个孤立的桌面。

我的应用程序是一个程序,拍摄Windows安全桌面并将其发送到剪贴板。

问题是:在该进程和non-SYSTEM进程之间是否存在共享内存数据的方法?(实际上,我正在使用一个文件来完成这项工作)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-25 06:59:53

在Windows和更高版本上,系统服务在独立会话(“会话0")中运行。这是你问题的最可能的原因。(请注意,所有系统服务都在会话0中运行,无论它们是否在SYSTEM安全上下文中运行。类似地,可以在任意会话中以SYSTEM的形式启动进程。)

每个会话都有一个独立的WinSta0工作站,因此有一个单独的剪贴板。所以剪贴板功能在这里是行不通的。

文件映射对象(共享内存)可以跨会话边界工作。但是,我不知道Qt是否有可能做到这一点。最好的选择似乎是使用setNativeKey,它可以确定文件映射的名称;要进行跨会话边界的文件映射,请使用以Global\开头的名称,如MSDN关于CreateFileMapping的文章中所述。如果可能的话,可以考虑直接使用Win32 API而不是Qt。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20157239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档