显示鼠标移动变化时冻结鼠标#

2024-09-28 22:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经做了一个程序,我可以控制运行我的接收器脚本(Python)的linux计算机(在本例中是一个raspberry pi)。到目前为止,我几乎可以发送所有的字符,字母和数字给它。问题是,鼠标移动。现在我用NUMPAD来控制鼠标移动,但是它很慢,只能移动+x或+y,不能同时移动。你知道吗

所以我想知道我是否可以冻结我的鼠标在程序中的位置,当我试图移动鼠标时,它会发送鼠标移动的变化。意思是如果我把鼠标拖到哪里,它会在UDP包中发送类似“mouse(+10,-4)”的信息。我不想让它发垃圾邮件接收器.py使用UDP数据包,所以我想一个小计时器会很好。 我最想知道的是,当鼠标在程序中运行时,我怎样才能冻结它。你知道吗

以下是我用来发送数字、符号和字母的代码:

if (piCheck.Checked) //As long as this is checked, every letter and mousemovement should be sent.
{
        try
        {
                Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

                string IpAddress = textBox1.Text;
                IPAddress serverAddr = IPAddress.Parse(IpAddress);


                IPEndPoint endPoint = new IPEndPoint(serverAddr, _PORT);

                byte[] send_buffer = UTF8Encoding.UTF8.GetBytes(e.KeyCode.ToString());

                sock.SendTo(send_buffer, endPoint);
                textinfo.Text = "It's fine...? Yea it is.";
        }

        catch (System.FormatException)
        {
                textinfo.Text = "SENDING ERROR";
        }
}

是的,我对代码的理解远不止这些,包括上键、CTRL、SHIFT等等。。你知道吗

您可能不太了解Python,但下面是一些代码:

######MOUSE######
elif data == 'NumPad8':
    os.system("xte 'mousermove 0 -6'")
elif data == 'NumPad6':
    os.system("xte 'mousermove 6 0'")
elif data == 'NumPad5':
    os.system("xte 'mousermove 0 6'")
elif data == 'NumPad4':
    os.system("xte 'mousermove -6 0'")
elif data == 'NumPad0':
    os.system("xte 'mouseclick 1'")
elif data == 'CTRLNumPad0':
    os.system("xte 'keydown Control_L' 'mouseclick 1' 'keyup Control_L'")
elif data == 'Insert':
    os.system("xte 'keydown Shift_L' 'mouseclick 1' 'keyup Shift_L'")
elif data == 'Decimal':
    os.system("xte 'mouseclick 3'")
elif data == 'Subtract':
    os.system("xte 'mouseclick 4'")
elif data == 'Add':
    os.system("xte 'mouseclick 5'")

它使用扩展Xautomation。(sudo apt get安装xautomation)

请帮忙。你知道吗


Tags: 代码text程序dataos字母数字鼠标