酷居科技

每个人都有属于自己的世界

使用Python强化Mouse Without Borders的鼠标键盘分享功能

作者:ikuju 发布:2018/7/8 分类:科技 阅读: 次 0条评论

最近刚配了一台新台式机,于是现在都是两台电脑同时开着,下面笔记本屏幕,上面台式机屏幕。如下图:

GFN_JF1XA6E5013FRUG11

打算用笔记本玩些轻应用,文本编辑、阅读什么的。台式机则可以干些高强度的活,比如目前采用GTX 1080TI +8700K,可以随便玩游戏以及高强度计算。

为了无缝操纵两台电脑,自然就安装使用了微软的Mouse Without Borders(以下简称MWB),免费,可以将电脑A的鼠标键盘共享给电脑B用,同样,B电脑的鼠标键盘也可以给A电脑用。

但是,为了尽量不让桌面上出现太多线,我接法是,有线鼠标(本来如果用无线鼠标是没这事的,主要是因为最近买了一个小米的垃圾扁平反人类无线鼠标,99RMB的那个,摸一段时间手都会抽筋,更无耻的是这垃圾小米鼠标滚轮滚动时,屏幕会来回晃动,最终还是用回了原来的有线鼠标,立马各种舒适)接到台式机A上。打算使用笔记本B的键盘,台式机A上的鼠标,来操纵2台电脑。然而,MWB没有直接集成这样的玩法(建议以后能集成),比如,按照我的情况,接入台式机上鼠标如果焦点在笔记本B上,那么正常操作笔记本B没任何问题。这时,如果将鼠标焦点转移到台式机A屏幕上,那么则无法在台式机屏幕上打字,因为这时,笔记本B的键盘并没有共享给台式机A用。MWB只提供了组合热键选项,可以将笔记本B的键盘手动共享到台式机A屏幕上使用。

ES2DFN_4BCU_DO07

每次都这么操作很累。于是,想了想,人生苦短,还是用Python来写段自动按热键的脚本吧。

主要思路是,当鼠标划过屏幕边缘时,自动去激活键盘切换热键。一般没意外情况,这个过程是可以被实现的。

采用pyautogui模块,来控制鼠标键盘。接下来的事就相当简单了,没几行代码,在笔记本上运行。

#!usr/bin/python
import pyautogui
import time
while True:
    mouseX, mouseY = pyautogui.position()
    if mouseY in range(1,5):
        print(mouseY)
        pyautogui.press('ctrl')
         pyautogui.press('ctrl')
        pyautogui.press('ctrl')
         print('键盘切换成功')
    time.sleep(2)
    #print(mouseX,mouseY)

因为,我的屏幕是上下分布,所以,单鼠标往上移动离开笔记本屏幕进入台式机屏幕时,笔记本光标Y值一般会值1-5之间。利用这个条件,进行热键处理再合适不过。这段脚本目前可正常运行,上述代码执行的3次点击Ctrl键,这个是同步所有计算机的鼠标键盘,也就是说,在B屏上输入,A屏也在同步输入。大部分情况不会有什么问题,但是如果按到Windows键之类的通用热键,就会在两台电脑上执行相同的功能。为了改善这个状况,我尝试使用pyautogui的组合热键功能,即使用ctrl+alt+1,去将笔记本的键盘单独共享给台式机用。

#!usr/bin/python
import pyautogui
import time
while True:
    mouseX, mouseY = pyautogui.position()
    if mouseY in range(1,5):
        print(mouseY)
        pyautogui.hotkey('ctrl','alt','1')
        print('键盘切换成功')
        pyautogui.moveTo(639,399)
     else:
        pyautogui.keyUp('ctrl')
        pyautogui.keyUp('alt')
    time.sleep(1)
    #print(mouseX,mouseY)

基本上,推荐后面的示例代码来实现这个自动切换键盘的功能。其实都不是很完美,暂时能用,就不想折腾了。

S076C0YMDP47HYCQ67

Windows下,如果要执行开机自动启动这个python脚本,那么需要创建一个batch文件,比如python_auto.bat,在里面输入要执行的脚本,比如python xxx.py。保存。右键这个batch文件创建一个快捷方式,把它拖动到C:\Users\<user name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 中。重启系统的时候就会自动执行了。当然你也可以用系统自带的任务执行器来定时执行这个batch文件。

2018年10月28日更新:

更新了一下,修复了‘ctrl’和‘alt’键始终这释放的问题。如下:

完善一下Mouse Without Borders共享键盘的python代码

除非注明,本站所有文章均为 ikuju 原创,转载请注明出处! 标签:Python  Mouse Without Borders  
« 上一篇下一篇 »

使用Python强化Mouse Without Borders的鼠标键盘分享功能:目前有0条评论

发表留言:

快捷回复: Ctrl+Enter