Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Linux下实时监控鼠标坐标_Python_Linux_Mouse - Fatal编程技术网

Python Linux下实时监控鼠标坐标

Python Linux下实时监控鼠标坐标,python,linux,mouse,Python,Linux,Mouse,我需要一个python代码来在Linux中实时监控鼠标坐标。我发现下面的代码工作得很好,但鼠标坐标信息将显示在弹出的GUI窗口中。现在我不需要它在GUI窗口中显示,只需要将鼠标坐标信息保存到文本文件(日志文件)中。有人能帮我吗?谢谢另外,如果它能每小时保存鼠标坐标信息,那就太好了 #!/usr/bin/env python """ Corrected, the thread stops now. """ import sys import os from time import sleep

我需要一个python代码来在Linux中实时监控鼠标坐标。我发现下面的代码工作得很好,但鼠标坐标信息将显示在弹出的GUI窗口中。现在我不需要它在GUI窗口中显示,只需要将鼠标坐标信息保存到文本文件(日志文件)中。有人能帮我吗?谢谢另外,如果它能每小时保存鼠标坐标信息,那就太好了

#!/usr/bin/env python

"""
Corrected, the thread stops now.
"""

import sys
import os

from time import sleep

import gtk
gtk.gdk.threads_init()

import threading

# uses the package python-xlib
# from http://snipplr.com/view/19188/mouseposition-on-linux-via-xlib/
# or: sudo apt-get install python-xlib
from Xlib import display


old_stdout = sys.stdout
sys.stdout = open(os.devnull, 'w')


def mousepos():
    """mousepos() --> (x, y) get the mouse coordinates on the screen (linux, Xlib)."""
    data = display.Display().screen().root.query_pointer()._data
    return data["root_x"], data["root_y"]


class MouseThread(threading.Thread):
    def __init__(self, parent, label):
        threading.Thread.__init__(self)
        self.label = label
        self.killed = False

    def run(self):
        try:
            while True:
                if self.stopped():
                    break
                text = "{0}".format(mousepos())
                self.label.set_text(text)
                sleep(0.01)
        except (KeyboardInterrupt, SystemExit):
            sys.exit()

    def kill(self):
        self.killed = True

    def stopped(self):
        return self.killed


class PyApp(gtk.Window):

    def __init__(self):
        super(PyApp, self).__init__()

        self.set_title("Mouse coordinates 0.1")
        self.set_size_request(250, 50)
        self.set_position(gtk.WIN_POS_CENTER)
        self.connect("destroy", self.quit)

        label = gtk.Label()

        self.mouseThread = MouseThread(self, label)
        self.mouseThread.start()

        fixed = gtk.Fixed()
        fixed.put(label, 10, 10)

        self.add(fixed)
        self.show_all()

    def quit(self, widget):
        self.mouseThread.kill()
        gtk.main_quit()


if __name__ == '__main__':
    app = PyApp()
    gtk.main()

检查您提供的代码。您需要的信息来自def mousepos()。所以,只要

from Xlib import display
data = display.Display().screen().root.query_pointer()._data
data["root_x"], data["root_y"]
获取当前鼠标位置,将其放入循环并写入/附加到文件。
这应该就够了。

这里有一个演示如何记录鼠标运动、单击和按键。该代码可以很容易地修改为将数据写入文件。1。如果您有conda,
conda安装-c conda forge python xlib
.2。在pip中:
pip安装python xlib