一种linux操作系统下实现多屏快速切换的方法

文档序号:9326743阅读:950来源:国知局
一种linux操作系统下实现多屏快速切换的方法
【专利说明】一种I inux操作系统下实现多屏快速切换的方法
[0001]
技术领域
[0002]本发明涉及一种多屏快速切换技术领域,具体地说是一种Iinux操作系统下实现多屏快速切换的方法。
【背景技术】
[0003]Linux操作系统是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了 Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
[0004]现如今,电脑配置的提升,可以同时运行的程序越来越多,一台显示器渐渐的已经不能满足部分人对电脑的需求了,他们迫切需要两个甚至多个显示器来显示一台电脑中运行的程序。可以通过外置多屏显卡,连接多个显示器,安装简单,使用非常方便。但是通过系统中的显示设置来实现屏幕内容的切换对用户来说非常不方便,所以有必要通过快捷按键方式来实现屏幕内容的快速切换。
[0005]

【发明内容】

本发明的技术任务是针对以上不足之处,提供一种Iinux操作系统下实现多屏快速切换的方法。解决通过系统中的显示设置来实现屏幕内容的切换对用户来说非常不方便的问题。
[0006]本发明解决其技术问题所采用的技术方案是:
一种Iinux操作系统下实现多屏快速切换的方法,所述方法包括键盘控制单元的实现、显示屏切换程序的实现;键盘控制单元位于Iinux操作系统层,用来接收用户的按键,向对应的设备文件dev、input、event中写入键值,并向上层发送信号;显示屏切换程序位于应用层,使用Qt编写,用来接收系统层发送的消息。
[0007]根据用户输入的组合键,通过RegisterHotKey函数注册全局热键,保证程序在后台运行时,能有效的触发键盘事件;
在程序中通过QApplicat1n里的winEventFilter函数,用来响应Windows系统消息的,函数原型为
virtual bool winEventFilter(MSG *msg, long ^result);
当msg指针中的message (MSG结构中的一个元素)为WM_H0TKEY类型时,就是用户触发了热键;
热键触发后,向Iinux操作系统发送xrandr指令,output指令,操作系统根据xrandr指令,output指令控制屏幕显示内容的切换。
[0008]具体实施步骤如下:
(I)、注册全局热键:使用函数 BOOL WINAPI RegisterHotKey (_in_opt HffND hffnd, _in int id, _in UNITfsModifiers , _in UNIT vk)注册全局热键;
如:RegiSterHotKey(m_hWnd, 1688, MOD_SHIFT|MOD_CONTROL, ’ A,);
(2)、在键盘控制单元中设置热键的键值;
(3)、在消息函数中监控全局热键事件,切换显示屏;代码如下:
OnHotKey(WPARAM wParam, LPARAM Iparam)
{
if (wParam==1688)
{
QProcess 氺myprocess;
Myprocess=new Qprocess();
connect(myprocess, SIGNAL(readyReadStandardOutput()), this,
SLOT (toggle ()));
}
}
private slots:void toggle ()
{
QStringList args;args〈〈〃-c〃;
args〈〈〃 xrandr —output DV1-O —above DV1-1 〃;myprocess->start("sh", args);myprocess->waitForFinished(30000);
}
(4)、注销热键UnregisterHotKey (m_hWnd, 1688);
(5 )、编译程序,添加到开机启动项中。
[0009]本发明的一种Iinux操作系统下实现多屏快速切换的方法和现有技术相比,实现了多屏快速切换,给用户的使用上带来了便利,因而,具有很好的推广使用价值。
【附图说明】
[0010]下面结合附图对本发明进一步说明。
[0011]附图1为一种Iinux操作系统下实现多屏快速切换的方法的显示屏快速切换框图;
附图2为一种Iinux操作系统下实现多屏快速切换的方法的显示屏快速切换流程图。
【具体实施方式】
[0012]下面结合附图和具体实施例对本发明作进一步说明。
[0013]实施例1:
本发明的一种Iinux操作系统下实现多屏快速切换的方法,所述方法包括键盘控制单元的实现、显示屏切换程序的实现;键盘控制单元位于Iinux操作系统层,用来接收用户的按键,向对应的设备文件dev、input、event中写入键值,并向上层发送信号;显示屏切换程序位于应用层,使用Qt编写,用来接收系统层发送的消息。
[0014]根据用户输入的组合键,通过RegisterHotKey函数注册全局热键,保证程序在后台运行时,能有效的触发键盘事件;
在程序中通过QApplicat1n里的winEventFilter函数,用来响应Windows系统消息的,函数原型为
virtual bool winEventFilter(MSG *msg, long ^result);
当msg指针中的message (MSG结构中的一个元素)为WM_H0TKEY类型时,就是用户触发了热键;
热键触发后,向Iinux操作系统发送xrandr指令,output指令,操作系统根据xrandr指令,output指令控制屏幕显示内容的切换。
[0015]实施例2:
本发明的一种Iinux操作系统下实现多屏快速切换的方法,所述方法包括键盘控制单元的实现、显示屏切换程序的实现;键盘控制单元位于Iinux操作系统层,用来接收用户的按键,向对应的设备文件dev、input、event中写入键值,并向上层发送信号;显示屏切换程序位于应用层,使用Qt编写,用来接收系统层发送的消息。
[0016]根据用户输入的组合键,通过RegisterHotKey函数注册全局热键,保证程序在后台运行时,能有效的触发键盘事件;
在程序中通过QApplicat1n里的winEventFilter函数,用来响应Windows系统消息的,函数原型为
virtual bool winEventFilter(MSG *msg, long ^result);
当msg指针中的message (MSG结构中的一个元素)为WM_H0TKEY类型时,就是用户触发了热键;
热键触发后,向Iinux操作系统发送xrandr指令,output指令,操作系统根据xrandr指令,output指令控制屏幕显示内容的切换。
[0017]具体实施步骤如下:
(1)、注册全局热键:
使用函数 B00L WINAPI RegisterHotKey (_in_opt HffND hffnd, _in int id, _in UNITfsModifiers , _in UNIT vk)注册全局热键;
如:RegiSterHotKey(m_hWnd, 1688, M0D_SHIFT|M0D_C0NTR0L, ’ A,);
(2)、在键盘控制单元中设置热键的键值;
(3)、在消息函数中监控全局热键事件,切换显示屏;代码如下:
OnHotKey(WPARAM wParam, LPARAM Iparam)
{
if (wParam==1688)
{
QProcess 氺myprocess;
Myprocess=new Qprocess();connect(myprocess, SIGNAL(readyReadStandardOutput()), this,
SLOT (toggle ()));
}
}
private slots:void toggle ()
{
QStringList args;args〈〈〃-c〃;
args〈〈〃 xrandr —output DV1-O —above DV1-1 〃;myprocess->start("sh", args);myprocess->waitForFinished(30000);
}
(4)、注销热键 UnregisterHotKey (m_hWnd, 1688);
(5 )、编译程序,添加到开机启动项中。
[0018]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种Iinux操作系统下实现多屏快速切换的方法的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
[0019]除说明书所述的技术特征外,均为本专业技术人员的已知技术。
【主权项】
1.一种Iinux操作系统下实现多屏快速切换的方法,其特征在于所述方法包括键盘控制单元的实现、显示屏切换程序的实现;键盘控制单元位于Iinux操作系统层,用来接收用户的按键,向对应的设备文件dev、input、event中写入键值,并向上层发送信号;显示屏切换程序位于应用层,使用Qt编写,用来接收系统层发送的消息。2.根据权利要求1所述的一种Iinux操作系统下实现多屏快速切换的方法,其特征在于根据用户输入的组合键,通过RegisterHotKey函数注册全局热键,保证程序在后台运行时,能有效的触发键盘事件; 在程序中通过QApplicat1n里的winEventFilter函数,用来响应Windows系统消息白勺,函数原型为 virtual bool winEventFilter ; 当msg指针中的message为WMJTOTKEY类型时,就是用户触发了热键; 热键触发后,向Iinux操作系统发送xrandr指令,output指令,操作系统根据xrandr指令,output指令控制屏幕显示内容的切换。3.根据权利要求1所述的一种Iinux操作系统下实现多屏快速切换的方法,其特征在于具体实施步骤如下: (1)、注册全局热键: 使用函数BOOL WINAPI RegisterHotKey注册全局热键; (2)、在键盘控制单元中设置热键的键值; (3)、在消息函数中监控全局热键事件,切换显示屏; (4)、注销热键UnregisterHotKey ; (5 )、编译程序,添加到开机启动项中。
【专利摘要】本发明公开了一种linux操作系统下实现多屏快速切换的方法,属于多屏快速切换技术领域,本发明解决通过系统中的显示设置来实现屏幕内容的切换对用户来说非常不方便的问题。技术方案为:所述方法包括键盘控制单元的实现、显示屏切换程序的实现;键盘控制单元位于linux操作系统层,用来接收用户的按键,向对应的设备文件dev、input、event中写入键值,并向上层发送信号;显示屏切换程序位于应用层,使用Qt编写,用来接收系统层发送的消息。
【IPC分类】G06F9/48, G06F3/14
【公开号】CN105045657
【申请号】CN201510380353
【发明人】于丽, 陈乃阔
【申请人】山东超越数控电子有限公司
【公开日】2015年11月11日
【申请日】2015年7月2日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1