3个显示器,想分别控制,开启,和关闭

zxvyio 2016-06-01 09:40:01
有3个显示器,想自己分别控制1,2,3,的显示器开启和关闭,请问要怎么实现,现在就只能实现全部显示器同时关闭,动一动鼠标就全开启,实现不了,3个分开控制。



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace 关闭显示器
{
public partial class 关闭显示器 : Form
{
public 关闭显示器()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{

}

private const uint WM_SYSCOMMAND = 0x112; //系统消息
private const int SC_MONITORPOWER = 0xF170; //关闭显示器的系统命令
private const int MonitorPowerOff = 2; //2为PowerOff, 1为省电状态,-1为开机
private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff);//广播消息,所有顶级窗体都会接收

[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);


private void button1_Click(object sender, EventArgs e)
{
//button1.Text = Screen.FromHandle();
SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MonitorPowerOff);

}

}
}


...全文
247 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxvyio 2016-06-13
  • 打赏
  • 举报
回复
自顶,自顶
zxvyio 2016-06-06
  • 打赏
  • 举报
回复
顶贴
puler 2016-06-02
  • 打赏
  • 举报
回复
感觉思路应该是:改变系统的显示器扩展设置
zxvyio 2016-06-02
  • 打赏
  • 举报
回复
找了一通,找到下面这些,网上这控制2屏以上很少有资料,没找着

利用WinForm中的Screen类,即可比较方便地实现多窗体分别在多个屏幕上显示。

    获取当前系统连接的屏幕数量: Screen.AllScreens.Count();
    获取当前屏幕的名称:string CurrentScreenName = Screen.FromControl(this).DeviceName;
    获取当前屏幕对象:Screen CurrentScreen = Screen.FromControl(this);
    获取当前鼠标所在的屏幕:Screen CurrentScreen = Screen.FromPoint(new Point(Cursor.Position.X, Cursor.Position.Y));
    让窗体在第2个屏幕上显示:

     this.Left = ((Screen.AllScreens[1].Bounds.Width - this.Width) / 2);
     this.Top = ((Screen.AllScreens[1].Bounds.Height - this.Height) / 2);

把任何窗体显示在任何屏幕的方法:
引用 1 楼 guonan198811 的回复:
...
zxvyio 2016-06-02
  • 打赏
  • 举报
回复
引用 3 楼 puler 的回复:
。。
不清楚,这个全关闭的代码有一点不怎么好,就是鼠标微小的一动就会又开启显示器,有什么辨法能降低灵敏度,或者直接改成只按健盘才能打开显示器!
南天空 2016-06-01
  • 打赏
  • 举报
回复
你发的是广播指令,当然是全部开启和关闭,想办法搞到单个显示的识别号,应该是一个类似ID或者句柄的东西,单个发送poweroff或者on的指令。我没研究过win32的函数库里有没有类似的函数。如果是厂家给的SDK应该会有想换的控制函数。找到那个能替代HWND_BROADCAST的参数
显示器驱动程序 手动安装显示器驱动软件 在 Windows Vista 下安装显示器的驱动程序 在 Windows XP 下安装显示器的驱动程序 在 Windows 7 下安装显示器的驱动程序   在 Windows Vista 下安装显示器的驱动程序 1. 关闭计算机和所有已连接设备的电源。 2. 确保显示器连接正确。 3. 打开显示器的电源,然后打开系统的电源。让计算机启动Windows Vista 操作系统。 4. 依次单击开始和控制面板,然后单击硬件和声音图标。 5. 单击个性化图标。 6. 单击显示设置图标。 7. 在弹出的显示设置窗口中单击高级设置按钮。 8. 单击监视器选项卡。 9. 单击属性按钮。 10. 在弹出的用户帐户控制窗口中选择继续按钮,然后单击驱动程序选项卡。 11. 单击更新驱动程序,以打开“更新驱动程序软件-通用即插即用监视器”窗口。 然后单击“浏览计算机以寻找驱动程序软件”按钮。 12. 选择“从计算机的设备驱动程序列表中选择”。 13. 将联光盘放入光盘驱动器中,然后点击从磁盘安装按钮。 14. 通过点击浏览按钮,然后浏览并指向下述路径: X:\Monitor Drivers (这里X代表光盘驱动器) 选择文件LS2023wC.inf,点击打开按钮,点击确定按钮。 15. 在新窗口中选择 Lenovo LS2023wC,然后点击下一步,文件从光盘复制到您的硬盘驱动器中。 16. 安装完成后,关闭所有打开的窗口,然后取出光盘。 17. 重新启动计算机。   在 Windows XP 下安装显示器的驱动程序 1. 关闭电脑和所有连接设备。 2. 确保显示器正确连接。 3. 打开显示器和系统。使系统导入Windows XP。 4. 点击 开始-> 设置-> 控制面板, 点击 外观与主题, 然后点击 显示 图标,打开 显示属性 窗口。 5. 点击 设置 项目。 6. 点击 高级 按钮。 7. 点击 监示器 项目。 8. 点击 属性 按钮。 9. 点击 驱动程序 项目。 10.点击 更新驱动程序 打开 硬体更新向导 窗口。如果出现“Windows可以连接到Windows Update 以搜索软件吗?”窗口,请选择“否,暂时不”然后点击 下一步。 11.选择 从列表或指定位置安装(高级), 然后点击 下一步。 12.选择 不要搜索。我要自己选择安装的驱动程序,然后点击 下一步。 13.选择 从磁盘安装 按钮。点击 浏览 按钮,然后浏览并指向下述路径 X:\Monitor Drivers (这里X代表光盘驱动器) 14.选择 LS2023wC.inf 档案然后点击 开启 按钮, 点击 确认 按钮。 15.选择 Lenovo LS2023wC 然后点击 下一步,文件将从CD复制到您的硬盘中。 16.关闭所有打开窗口,取出CD。 17.重启系统。   在 Windows 7 下安装显示器的驱动程序 1. 关闭电脑和所有连接设备。 2. 确保显示器正确连接。 3. 打开显示器和系统。使系统导入Windows 7。 4. 点击 Start -> Control Panel -> Appearance and Personalization -> Display ->Change Display Settings。 6. 点击 Advanced Settings。 7. 点击 Monitor 项目。 8. 点击 Properties按钮。 9. 点击 Driver 项目。 10.点击 Update Driver 。 11.选择 Browse My Computer for Driver Software。 13.点击 浏览 按钮,然后浏览并指向下述路径 X:\Monitor Drivers (这里X代表光盘驱动器) 14.选择 LS2023wC.inf 档案然后点击 开启 按钮, 点击 确认 按钮。 15.选择 Lenovo LS2023wC 然后点击 下一步,文件将从CD复制到您的硬盘中。 16.关闭所有打开窗口,取出CD。 17.重启系统。
在 Windows Vista 下安装显示器的驱动程序 在 Windows XP 下安装显示器的驱动程序 在 Windows 7 下安装显示器的驱动程序   在 Windows Vista 下安装显示器的驱动程序 1. 关闭计算机和所有已连接设备的电源。 2. 确保显示器连接正确。 3. 打开显示器的电源,然后打开系统的电源。让计算机启动Windows Vista 操作系统。 4. 依次单击开始和控制面板,然后单击硬件和声音图标。 5. 单击个性化图标。 6. 单击显示设置图标。 7. 在弹出的显示设置窗口中单击高级设置按钮。 8. 单击监视器选项卡。 9. 单击属性按钮。 10. 在弹出的用户帐户控制窗口中选择继续按钮,然后单击驱动程序选项卡。 11. 单击更新驱动程序,以打开“更新驱动程序软件-通用即插即用监视器”窗口。 然后单击“浏览计算机以寻找驱动程序软件”按钮。 12. 选择“从计算机的设备驱动程序列表中选择”。 13. 将联光盘放入光盘驱动器中,然后点击从磁盘安装按钮。 14. 通过点击浏览按钮,然后浏览并指向下述路径: X:\Monitor Drivers (这里X代表光盘驱动器) 选择文件LS2023wC.inf,点击打开按钮,点击确定按钮。 15. 在新窗口中选择 Lenovo LS2023wC,然后点击下一步,文件从光盘复制到您的硬盘驱动器中。 16. 安装完成后,关闭所有打开的窗口,然后取出光盘。 17. 重新启动计算机。   在 Windows XP 下安装显示器的驱动程序 1. 关闭电脑和所有连接设备。 2. 确保显示器正确连接。 3. 打开显示器和系统。使系统导入Windows XP。 4. 点击 开始-> 设置-> 控制面板, 点击 外观与主题, 然后点击 显示 图标,打开 显示属性 窗口。 5. 点击 设置 项目。 6. 点击 高级 按钮。 7. 点击 监示器 项目。 8. 点击 属性 按钮。 9. 点击 驱动程序 项目。 10.点击 更新驱动程序 打开 硬体更新向导 窗口。如果出现“Windows可以连接到Windows Update 以搜索软件吗?”窗口,请选择“否,暂时不”然后点击 下一步。 11.选择 从列表或指定位置安装(高级), 然后点击 下一步。 12.选择 不要搜索。我要自己选择安装的驱动程序,然后点击 下一步。 13.选择 从磁盘安装 按钮。点击 浏览 按钮,然后浏览并指向下述路径 X:\Monitor Drivers (这里X代表光盘驱动器) 14.选择 LS2023wC.inf 档案然后点击 开启 按钮, 点击 确认 按钮。 15.选择 Lenovo LS2023wC 然后点击 下一步,文件将从CD复制到您的硬盘中。 16.关闭所有打开窗口,取出CD。 17.重启系统。   在 Windows 7 下安装显示器的驱动程序 1. 关闭电脑和所有连接设备。 2. 确保显示器正确连接。 3. 打开显示器和系统。使系统导入Windows 7。 4. 点击 Start -> Control Panel -> Appearance and Personalization -> Display ->Change Display Settings。 6. 点击 Advanced Settings。 7. 点击 Monitor 项目。 8. 点击 Properties按钮。 9. 点击 Driver 项目。 10.点击 Update Driver 。 11.选择 Browse My Computer for Driver Software。 13.点击 浏览 按钮,然后浏览并指向下述路径 X:\Monitor Drivers (这里X代表光盘驱动器) 14.选择 LS2023wC.inf 档案然后点击 开启 按钮, 点击 确认 按钮。 15.选择 Lenovo LS2023wC 然后点击 下一步,文件将从CD复制到您的硬盘中。 16.关闭所有打开窗口,取出CD。 17.重启系统。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧