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

问题描述

有3个显示器,想自己分别控制1,2,3,的显示器开启和关闭,请问要怎么实现,现在就只能实现全部显示器同时关闭,动一动鼠标就全开启,实现不了,3个分开控制。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Runtime.InteropServices;namespace关闭显示器{publicpartialclass关闭显示器:Form{public关闭显示器(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}privateconstuintWM_SYSCOMMAND=0x112;//系统消息privateconstintSC_MONITORPOWER=0xF170;//关闭显示器的系统命令privateconstintMonitorPowerOff=2;//2为PowerOff,1为省电状态,-1为开机privatestaticreadonlyIntPtrHWND_BROADCAST=newIntPtr(0xffff);//广播消息,所有顶级窗体都会接收[DllImport("user32.dll")]privatestaticexternIntPtrSendMessage(IntPtrhWnd,uintMsg,intwParam,intlParam);privatevoidbutton1_Click(objectsender,EventArgse){//button1.Text=Screen.FromHandle();SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,MonitorPowerOff);}}}

解决方案

解决方案二:
你发的是广播指令,当然是全部开启和关闭,想办法搞到单个显示的识别号,应该是一个类似ID或者句柄的东西,单个发送poweroff或者on的指令。我没研究过win32的函数库里有没有类似的函数。如果是厂家给的SDK应该会有想换的控制函数。找到那个能替代HWND_BROADCAST的参数
解决方案三:
找了一通,找到下面这些,网上这控制2屏以上很少有资料,没找着利用WinForm中的Screen类,即可比较方便地实现多窗体分别在多个屏幕上显示。获取当前系统连接的屏幕数量:Screen.AllScreens.Count();获取当前屏幕的名称:stringCurrentScreenName=Screen.FromControl(this).DeviceName;获取当前屏幕对象:ScreenCurrentScreen=Screen.FromControl(this);获取当前鼠标所在的屏幕:ScreenCurrentScreen=Screen.FromPoint(newPoint(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的回复:

...

解决方案四:
改变系统的显示器扩展设置
解决方案五:
引用3楼puler的回复:

。。

不清楚,这个全关闭的代码有一点不怎么好,就是鼠标微小的一动就会又开启显示器,有什么辨法能降低灵敏度,或者直接改成只按健盘才能打开显示器!
解决方案六:
顶贴
解决方案七:
自顶,自顶

时间: 2024-12-01 05:02:34

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

java问题分析-分析如下Java代码,如果想在控制台上输出“B类的test()方法”,则在主函数应填入( )

问题描述 分析如下Java代码,如果想在控制台上输出"B类的test()方法",则在主函数应填入( ) 分析如下Java代码,如果想在控制台上输出"B类的test()方法",则在主函数应填入( )class A {public void test() { System.out.println(""A类的test()方法"");}}class B extends A {public void test() { System.ou

qt-自己用Qt画了一个方块,想要控制方块移动,paintevent和keypressevent已经写好

问题描述 自己用Qt画了一个方块,想要控制方块移动,paintevent和keypressevent已经写好 void Widget::paintEvent(QPaintEvent*event) {QPainterpainter(this); painter.setPen(QPen(Qt::black,8)); painter.drawRect(50,50,50,50);} void Widget::keyPressEvent(QKeyEvent*event){ switch(event->ke

magento -- 修改文件来手动控制编译的开启和关闭

之前遇到一个情况,在编译开启的状态下安装了一个新插件,结果前后台都不能访问了,这时想去找找是哪里在控制编译的开启和关闭,先把编译关了来保证系统不报错.按照一般的习惯后台数据或配置都是存在于数据库,但找遍数据库也没发现跟编译有关的数据.因为编译的结果是在/includes/src目录下生产很多文件,去includes文件夹时发现了config.php文件,从命名就可以看出这是一个做配置的文件,经过拿一个本地测试项目做实验,证实了编译的开启与否并不是存在数据库,而是在修改config.php的内容.

win8开启和关闭密码明文显示的方法

  现在大家对于密码的设置都是很谨慎的,几乎所有的电脑.手机都设置了开机密码,为了安全起见,大多数人都是使用的星号密码,因为有些人对于开机密码都很熟悉,所以使用星号密码更加保密一些.但是对于一些密码过于复杂的人的话,如果设置的星号密码,我们容易在输入密码的时候弄错,这样就会增加操作次数,是很麻烦的一件事情.现在其实可以设置明文密码,输入任何的数字都很明显,所以是个很不错的选择.下面小编就来教大家win8纯净版明文密码的查看方法. win8开启和关闭密码明文显示的方法 如图所示,直接单击按钮就显示

Windows 7下如何开启与关闭系统分级功能

  故障现象: Windows 7下如何开启与关闭系统分级功能. 解决方案: 系统分级是Windows 7操作系统自带的电脑性能检测工具,测量计算机硬件和软件配置的功能,并将此测量结果表示为称作基础分数的一个数字.较高的基础分数通常表示计算机比具有较低基础分数的计算机运行得更好和更快. 每个硬件组件都会接收单独的子分数.计算机的基础分数是由最低的子分数确定的,基础分数不是合并子分数的平均数.例如,如果某个硬件组件的最低子分数是 5.9,则基础分数就是 5.9. 子分数是计算机的处理器(CPU).

WinXP自动维护功能开启或关闭的步骤方法

  今天小编来告诉大家一个秘密:WinXP系统有自动维护功能.顾名思义:就是起维护作用,而且会自动对系统进行更新扫描,清理磁盘等.自动更新固然很好,但是一些补丁.插件都不是我们想要的更新了反而会对电脑有损害,那么学会关闭WinXP系统的自动维护功能也是需要了解到.下面就是小编向大家介绍一些开启和关闭WinXP系统自动维护功能的方法. WinXP开启或关闭自动维护功能的步骤方法 首先点击打开电脑的开始菜单功能,看到栏目中的控制面板工具,点击打开弹出控制面板窗口,点开操作中心图标,然后选择自动维护就

SQL中xp_cmdshell开启和关闭详解

xp_cmdshell --SQL Server 2005 中引入的 xp_cmdshell 选项是服务器配置选项,使系统管理员能够控制是否可以在系统上执行 xp_cmdshell 扩展存储过程.默认情况下,xp_cmdshell 选项在新安装的软件上处于禁用状态,但是可以通过使用外围应用配置器工具或运行 sp_configure 系统存储过程来启用它,如下面的代码示例所示:  代码如下 复制代码  -- To allow advanced options to be changed. --允许

Win10系统开启与关闭Cortana响应“你好小娜的功能”

开启Cortana小娜的方法 1.首先登陆Microsoft账户,打开小娜界面,如下图: 2.选择左侧的设置,如下图: 3.实现你好小娜功能,必须开启Cortana可以提醒建议.通知等功能,如下图状态表示为关,需要开启,(此功能界面为关闭或开启小娜功能)如图: 4.选择我同意,如下图: 5.开启你好小娜功能(状态为开表示开启),此时支持通过你好小娜的语音打开小娜(小娜调出语音输入快捷键:windows+c键),如下图: 6.基于有麦克风设备,语音:你好小娜即可启动小娜,此时再对小娜说出对应的指令

在三层架构DAL层多次开启和关闭Connection对象好吗?

问题描述 在DAL层中,每次执行查询以后都会关闭prepareStatement对象和Connection对象,请问这样做合适吗?我的SQLHelper写成是静态的了,DAL层每个查询都从SQLHelper中获取一个PrepareStatement对象,然后每次执行完对应的查询后都会关闭pstmt对象和connection对象,然而这只是在DAL层,在BLL层中一般会调用1-5个DAL的方法,也就是说,一轮业务逻辑下来,Connection对象会开启和关闭1-5次,这样对性能有影响吗?有没有高手