gpt4 book ai didi

python - 在 Linux 中实时监控鼠标坐标

转载 作者:可可西里 更新时间:2023-11-01 11:46:16 25 4
gpt4 key购买 nike

我需要一个 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"]

你得到当前的鼠标位置,把它放在一个循环中并写入/附加到一个文件。这应该可以解决问题。

关于python - 在 Linux 中实时监控鼠标坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21850145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com