admin 管理员组

文章数量: 1086019


2024年12月24日发(作者:delete的情侣网名)

(19)中华人民共和国国家知识产权局

(12)发明专利说明书

(21)申请号 CN2.3

(22)申请日 2015.07.02

(71)申请人 山东超越数控电子有限公司

地址 250100 山东省济南市高新区孙村镇科航路2877号

(72)发明人 于丽 陈乃阔

(74)专利代理机构 济南信达专利事务所有限公司

代理人 姜明

(51)

G06F9/48

G06F3/14

(10)申请公布号 CN 105045657 A

(43)申请公布日 2015.11.11

权利要求说明书 说明书 幅图

(54)发明名称

一种linux操作系统下实现多屏快

速切换的方法

(57)摘要

本发明公开了一种linux操作系统

下实现多屏快速切换的方法,属于多屏快

速切换技术领域,本发明解决通过系统中

的显示设置来实现屏幕内容的切换对用户

来说非常不方便的问题。技术方案为:所

述方法包括键盘控制单元的实现、显示屏

切换程序的实现;键盘控制单元位于linux

操作系统层,用来接收用户的按键,向对

应的设备文件dev、input、event中写入键

值,并向上层发送信号;显示屏切换程序

位于应用层,使用Qt编写,用来接收系统

层发送的消息。

法律状态

法律状态公告日

法律状态信息

法律状态

权 利 要 求 说 明 书

1.一种linux操作系统下实现多屏快速切换的方法,其特征在于所述方法包括键盘控

制单元的实现、显示屏切换程序的实现;键盘控制单元位于linux操作系统层,用来

接收用户的按键,向对应的设备文件dev、input、event中写入键值,并向上层发送信

号;显示屏切换程序位于应用层,使用Qt编写,用来接收系统层发送的消息。

2.根据权利要求1所述的一种linux操作系统下实现多屏快速切换的方法,其特征在

于根据用户输入的组合键,通过RegisterHotKey函数注册全局热键,保证程序在后台

运行时,能有效的触发键盘事件;

在程序中通过QApplication里的winEventFilter函数,用来响应Windows系统消息的,

函数原型为virtualboolwinEventFilter;

当msg指针中的message为WM_HOTKEY类型时,就是用户触发了热键;

热键触发后,向linux操作系统发送xrandr指令,output指令,操作系统根据xrandr指

令,output指令控制屏幕显示内容的切换。

3.根据权利要求1所述的一种linux操作系统下实现多屏快速切换的方法,其特征在

于具体实施步骤如下:

(1)、注册全局热键:

使用函数BOOLWINAPIRegisterHotKey注册全局热键;

(2)、在键盘控制单元中设置热键的键值;

(3)、在消息函数中监控全局热键事件,切换显示屏;

(4)、注销热键UnregisterHotKey;

(5)、编译程序,添加到开机启动项中。

说 明 书

技术领域

本发明涉及一种多屏快速切换技术领域,具体地说是一种linux操作系统下实现多屏

快速切换的方法。

背景技术

Linux操作系统是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX

和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的

UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了

Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

现如今,电脑配置的提升,可以同时运行的程序越来越多,一台显示器渐渐的已经不能

满足部分人对电脑的需求了,他们迫切需要两个甚至多个显示器来显示一台电脑中

运行的程序。可以通过外置多屏显卡,连接多个显示器,安装简单,使用非常方便。但

是通过系统中的显示设置来实现屏幕内容的切换对用户来说非常不方便,所以有必

要通过快捷按键方式来实现屏幕内容的快速切换。

发明内容

本发明的技术任务是针对以上不足之处,提供一种linux操作系统下实现多屏快速切

换的方法。解决通过系统中的显示设置来实现屏幕内容的切换对用户来说非常不方

便的问题。

本发明解决其技术问题所采用的技术方案是:

一种linux操作系统下实现多屏快速切换的方法,所述方法包括键盘控制单元的实现、

显示屏切换程序的实现;键盘控制单元位于linux操作系统层,用来接收用户的按键,

向对应的设备文件dev、input、event中写入键值,并向上层发送信号;显示屏切换程

序位于应用层,使用Qt编写,用来接收系统层发送的消息。

根据用户输入的组合键,通过RegisterHotKey函数注册全局热键,保证程序在后台运

行时,能有效的触发键盘事件;

在程序中通过QApplication里的winEventFilter函数,用来响应Windows系统消息的,

函数原型为

virtualboolwinEventFilter(MSG*msg,long*result);

当msg指针中的message(MSG结构中的一个元素)为WM_HOTKEY类型时,就是用

户触发了热键;

热键触发后,向linux操作系统发送xrandr指令,output指令,操作系统根据xrandr指

令,output指令控制屏幕显示内容的切换。

具体实施步骤如下:

(1)、注册全局热键:

使用函数

BOOLWINAPIRegisterHotKey(_in_optHWNDhWnd,_inintid,_inUNITfsModifiers,_inU

NITvk)注册全局热键;

如:RegisterHotKey(m_hWnd,1688,MOD_SHIFT|MOD_CONTROL,’A’);

(2)、在键盘控制单元中设置热键的键值;

(3)、在消息函数中监控全局热键事件,切换显示屏;代码如下:

OnHotKey(WPARAMwParam,LPARAMIparam)

{

if(wParam==1688)

{

QProcess*myprocess;

Myprocess=newQprocess();

connect(myprocess,SIGNAL(readyReadStandardOutput()),this,

SLOT(toggle()));

}

}

privateslots:

voidtoggle()

{

QStringListargs;

args<<"-c";

args<<"xrandr--outputDVI-0--aboveDVI-1";

myprocess->start("sh",args);

myprocess->waitForFinished(30000);

}

(4)、注销热键UnregisterHotKey(m_hWnd,1688);

(5)、编译程序,添加到开机启动项中。

本发明的一种linux操作系统下实现多屏快速切换的方法和现有技术相比,实现了多

屏快速切换,给用户的使用上带来了便利,因而,具有很好的推广使用价值。

附图说明

下面结合附图对本发明进一步说明。

附图1为一种linux操作系统下实现多屏快速切换的方法的显示屏快速切换框图;

附图2为一种linux操作系统下实现多屏快速切换的方法的显示屏快速切换流程图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明。

实施例1:

本发明的一种linux操作系统下实现多屏快速切换的方法,所述方法包括键盘控制单

元的实现、显示屏切换程序的实现;键盘控制单元位于linux操作系统层,用来接收

用户的按键,向对应的设备文件dev、input、event中写入键值,并向上层发送信号;显

示屏切换程序位于应用层,使用Qt编写,用来接收系统层发送的消息。

根据用户输入的组合键,通过RegisterHotKey函数注册全局热键,保证程序在后台运

行时,能有效的触发键盘事件;

在程序中通过QApplication里的winEventFilter函数,用来响应Windows系统消息的,

函数原型为

virtualboolwinEventFilter(MSG*msg,long*result);

当msg指针中的message(MSG结构中的一个元素)为WM_HOTKEY类型时,就是用

户触发了热键;

热键触发后,向linux操作系统发送xrandr指令,output指令,操作系统根据xrandr指

令,output指令控制屏幕显示内容的切换。

实施例2:

本发明的一种linux操作系统下实现多屏快速切换的方法,所述方法包括键盘控制单

元的实现、显示屏切换程序的实现;键盘控制单元位于linux操作系统层,用来接收

用户的按键,向对应的设备文件dev、input、event中写入键值,并向上层发送信号;显

示屏切换程序位于应用层,使用Qt编写,用来接收系统层发送的消息。

根据用户输入的组合键,通过RegisterHotKey函数注册全局热键,保证程序在后台运

行时,能有效的触发键盘事件;

在程序中通过QApplication里的winEventFilter函数,用来响应Windows系统消息的,

函数原型为

virtualboolwinEventFilter(MSG*msg,long*result);

当msg指针中的message(MSG结构中的一个元素)为WM_HOTKEY类型时,就是用

户触发了热键;

热键触发后,向linux操作系统发送xrandr指令,output指令,操作系统根据xrandr指

令,output指令控制屏幕显示内容的切换。

具体实施步骤如下:

(1)、注册全局热键:

使用函数

BOOLWINAPIRegisterHotKey(_in_optHWNDhWnd,_inintid,_inUNITfsModifiers,_inU

NITvk)注册全局热键;

如:RegisterHotKey(m_hWnd,1688,MOD_SHIFT|MOD_CONTROL,’A’);

(2)、在键盘控制单元中设置热键的键值;

(3)、在消息函数中监控全局热键事件,切换显示屏;代码如下:

OnHotKey(WPARAMwParam,LPARAMIparam)

{

if(wParam==1688)

{

QProcess*myprocess;

Myprocess=newQprocess();

connect(myprocess,SIGNAL(readyReadStandardOutput()),this,

SLOT(toggle()));

}

}

privateslots:

voidtoggle()

{

QStringListargs;

args<<"-c";

args<<"xrandr--outputDVI-0--aboveDVI-1";

myprocess->start("sh",args);

myprocess->waitForFinished(30000);

}

(4)、注销热键UnregisterHotKey(m_hWnd,1688);

(5)、编译程序,添加到开机启动项中。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上

述具体实施方式,任何符合本发明的一种linux操作系统下实现多屏快速切换的方法

的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,

皆应落入本发明的专利保护范围。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。


本文标签: 切换 实现 热键