Windows 设置不同的双屏模式

Windows 设置不同的双屏模式,windows,winapi,multiple-monitors,Windows,Winapi,Multiple Monitors,当我右键单击桌面,然后选择“显示设置”(Windows 10)时,会打开一个配置窗口,从中可以选择如何处理具有两个或多个监视器的系统。在那里,我可以选择“复制这些显示”(两个显示器显示相同)和“扩展这些显示”(两个显示器显示不同的内容,桌面扩展到完整大小) 现在我想以编程方式实现这一点,这意味着我需要在应用程序中切换并保持这种模式。如何做到这一点?是否有一些系统函数调用,是否可以通过注册表或某些配置应用程序使用特定的命令行参数进行调用?你知道这怎么可能吗 感谢:-)感谢@Drakwu,它现在可以

当我右键单击桌面,然后选择“显示设置”(Windows 10)时,会打开一个配置窗口,从中可以选择如何处理具有两个或多个监视器的系统。在那里,我可以选择“复制这些显示”(两个显示器显示相同)和“扩展这些显示”(两个显示器显示不同的内容,桌面扩展到完整大小)

现在我想以编程方式实现这一点,这意味着我需要在应用程序中切换并保持这种模式。如何做到这一点?是否有一些系统函数调用,是否可以通过注册表或某些配置应用程序使用特定的命令行参数进行调用?你知道这怎么可能吗


感谢:-)

感谢@Drakwu,它现在可以工作了:

SetDisplayConfig(0, NULL, 0, NULL, (SDC_APPLY | SDC_TOPOLOGY_CLONE));

重要提示:MS文档描述了“当前会话”的模式更改(据我理解,这意味着只要我的应用程序正在运行),这是胡说八道。应用程序结束时,甚至系统重新启动时,也会保留显示配置。

您尝试过这种方法吗?扩展:
SetDisplayConfig(0,NULL,0,NULL,(SDC_应用| SDC_拓扑_扩展))克隆:
SetDisplayConfig(0,NULL,0,NULL,(SDC_应用| SDC_拓扑_克隆))
@DrakeWu msfta根据您链接的文档,SetDisplayConfig仅修改当前会话的屏幕设置,我需要做的是永久更改它,而且当我的应用程序退出时,设置应用程序正在使用
SetDisplayConfig
,应用程序退出是什么意思?我创建了一个简单的程序进行测试,当程序退出时,设置将保持更改。这对你有用吗?您的应用程序是否在会话0中运行?(如果是,您将得到
错误\u访问\u拒绝
),如果您有任何问题,请随时通知我。请不要忘记标记它以帮助有相同问题的人。