使用非活动终端窗口捕获键或鼠标按下以结束程序

时间:2016-03-21 14:06:24

标签: python linux mouseevent keypress

我试图通过让python在ubuntu系统上为我点击鼠标来自动化一些cookie-clicker风格的游戏(在网站上)。点击部分运行正常,但我似乎无法用CTRL-C取消我的程序,因为浏览器窗口处于活动状态,因为我一直用移动鼠标点击它。现在我有一个定时解决方案,但那不是最佳选择。

这是我非常简单的代码:

from pymouse import PyMouse
from pymouse import PyMouseEvent
import time
from datetime import datetime

m = PyMouse()

x,y = m.position() #gets mouse current position coordinates

print x
print y

finish = datetime(2016, 3, 21, 14, 1)
print finish

while datetime.now() < finish:
    for y in range(160,520,3):  
        time.sleep(0.005)
        m.click(470,y,1)

我查看了PyMouse示例并找到了一个部分来通过右键单击来结束我的程序,但是如果我尝试将它结合起来,我似乎无法使它工作。

from pymouse import PyMouse
from pymouse import PyMouseEvent
import time
from datetime import datetime


class Clickonacci(PyMouseEvent):

    def cookies(self):
        m = PyMouse()

        x,y = m.position() #gets mouse current position coordinates

        print x
        print y

        finish = datetime(2016, 3, 21, 14, 41)
        print finish

        while datetime.now() < finish:      
            for y in range(160,520,3):  
                time.sleep(0.005)
                m.click(470,y,1)


    def __init__(self):
        PyMouseEvent.__init__(self)
        self.cookies()

    def click(self, x, y, button, press):
        if button == 2:
            if press:
                self.stop()

C = Clickonacci()
C.run()

这让我可以通过右键单击退出我的程序并打印初始鼠标坐标,但它不控制鼠标在给定位置点击自动。

也许拥有更多经验的人可以解开这个以使其有效?

编辑:

我通过pip install pymouse安装,不确定它是否与https://github.com/pepijndevos/PyMouse的版本相同

所以我正在寻找一种方法来终止我的程序,方法是右键单击鼠标或按某个键,即使我启动程序的终端窗口不是活动窗口。

0 个答案:

没有答案