当前位置:  开发笔记 > 编程语言 > 正文

如何在C#中启用第二台显示器?

如何解决《如何在C#中启用第二台显示器?》经验,为你挑选了2个好方法。

是否可以以编程方式启用第二个监视器并使用C#将Windows桌面扩展到它上面?它需要相当于打开下图中的复选框.

替代文字



1> Pop Catalin..:

MSDN设备上下文功能

你基本上需要做什么:

使用EnumDisplayDevices()API调用枚举系统上的显示设备并查找那些没有 DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 标志设置(这将包括任何镜像设备,因此并非所有设备都是物理显示器.)一旦找到显示设备,您需要获得有效的显示模式才能将其更改为,您可以通过调用EnumDisplaySettingsEx找到它( )API调用 - 通常你会显示所有可用的模式并允许用户选择,但在你的情况下,听起来这可能是硬编码并为你节省额外的一步.为了使您的应用程序能够面向未来,虽然我建议您可以轻松更改此应用程序,而无需每次都仔细查看源代码,但注册表项是明显的选择.一旦你完成整理后,填充一个DevMode显示结构,其中包含有关显示位置的信息(设置PelsWidth/Height,Position,DisplayFrequency和BitsPerPel属性)然后在fields成员中设置这些标志.最后使用此设置结构调用ChangeDisplaySettingsEx(),并确保发送重置和更新注册表标志.这应该是你所需要的,希望这有帮助,

使用PInvoke导入DISPLAY_DEVICE结构

EnumDisplayDevices函数导入

EnumDisplaySettingsEx函数导入

其他功能可以通过简单的名称搜索找到.



2> Robert Baker..:

如果您有Windows 7,那么只需启动一个过程:

    private static Process DisplayChanger = new Process
    {
        StartInfo =
        {
            CreateNoWindow = true,
            WindowStyle = ProcessWindowStyle.Hidden,
            FileName = "DisplaySwitch.exe",
            Arguments = "/extend"
        }
    };

然后DisplayChanger.Start();

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有