MSDN 文档中的 OpenInputDesktop 究竟代表啥?

Posted

技术标签:

【中文标题】MSDN 文档中的 OpenInputDesktop 究竟代表啥?【英文标题】:What does OpenInputDesktop in MSDN documentation stand for exactly?MSDN 文档中的 OpenInputDesktop 究竟代表什么? 【发布时间】:2015-09-28 15:48:44 【问题描述】:

我正在浏览DesktopDuplication API Sample Code,其中有很多功能我不清楚它们的确切设备和参数是什么。其中之一是OpenInputDesktop。

这是 DesktopDuplication API 示例代码中如何使用此函数的代码 sn-p。

// Get desktop
    DUPL_RETURN Ret;
    HDESK CurrentDesktop = nullptr;
    CurrentDesktop = OpenInputDesktop(0, FALSE, GENERIC_ALL);

所以我的问题是,这里的桌面到底是什么意思?

如果我有一个多显示器系统,主桌面:1366X768 和 1920X1080 的辅助桌面,那么桌面是指仅主桌面的桌面区域:1366X768 还是桌面是指 (1920+1366)3286X1080 的整个屏幕区域?

或者我们是否可以在函数调用中选择上述两个桌面定义之一。但是我找不到任何可以更改的参数。

更新 我提到了Window Station and Desktop Creation 和Desktop 和Window Stations 但是我还没有找到我的问题的具体答案。 Here in Desktops提到:

这个活动桌面,也称为输入桌面,是当前对用户可见并接收用户输入的桌面。

这是否意味着主监视器?我仍然对桌面和显示器的概念感到困惑

默认情况下,交互式窗口站中有三个桌面:Default、ScreenSaver 和 Winlogon。

这消除了桌面和显示器之间没有关系的疑问。但是,当连接多个显示器时,桌面区域是什么意思?主显示器或组合屏幕空间上的默认/屏幕保护程序是什么?

【问题讨论】:

MSDN 本身可以帮助您:About Window Stations and Desktops 我阅读了您提到的文章以及Window Stations 和Desktops 但是我仍然不清楚我提出的疑问。 @BenVoigt 您的混淆是由于使用“桌面”一词来表示实际上是“显示表面”。当您尝试理解 Windows API 时,您需要使用它的术语,这并不总是等同于非程序员的常用用法。 在 Windows API 中,“桌面”是一个包含在“窗口站”中的对象,它本身是***窗口的容器(所有其他窗口都是间接后代)。它没有尺寸,或类似的东西。它只存在于窗口层次结构中。 @BenVoigt 您能否详细解释一下桌面或“显示表面”与多显示器系统之间的关系?就像在this article about Desktops by MSDN 中提到的那样,交互式窗口站中有三个桌面:Default、ScreenSaver 和 Winlogon。 所以这意味着桌面只与主监视器相关,对吧?并为多显示器系统中的辅助显示器创建了不同的桌面。还是我都搞错了? 【参考方案1】:

我在此链接上找到了我的问题的答案:Virtual Screen。

提及的地方:

所有显示器的边界矩形是虚拟屏幕。桌面覆盖虚拟屏幕而不是单个显示器。

这基本上让我对桌面到底代表什么感到困惑。感谢您的帮助@Ben Voigt

在此链接上:HMonitor and the Device Context 已被提及:

每个物理显示器都由 HMONITOR 类型的监视器句柄表示。只要物理显示器是桌面的一部分,它就具有相同的 HMONITOR。

所以这清除了我关于物理设备、虚拟屏幕以及它们如何与 MSDN 中的监视器和桌面相关的概念。

希望这有助于有人搜索与我相似的答案。

【讨论】:

以上是关于MSDN 文档中的 OpenInputDesktop 究竟代表啥?的主要内容,如果未能解决你的问题,请参考以下文章

MSDN语法文档中“{}”中的文本是什么意思?

MSDN 帮助中的目录

vs2015 msdn的离线帮助文档怎么使用

怎样下载msdn本地文档

“Windows [版本]:此值不可用”是啥意思。 MSDN 中的声明?

关于VS的MSDN的文档