显示鼠标移动时冻结鼠标c#

时间:2016-08-22 02:19:21

标签: c# python udp mouse

我已经制作了一个程序,我可以控制运行我的Receiver脚本(Python)的linux计算机(在本例中为raspberry pi)。到目前为止,我能够发送几乎所有的字符,字母和数字。问题是,鼠标移动。现在我使用NUMPAD控制鼠标移动,但速度很慢,只能移动+ x或+ y,而不是两者都移动。

所以我想知道我是否能以某种方式冻结我在程序中的鼠标位置,当我尝试移动鼠标时,它会发送鼠标移动更改。意思是如果我在哪里拖动鼠标,它会发送类似" MOUSE(+ 10,-4)"在UDP数据包中。我不希望它使用UDP数据包向Receiver.py发送垃圾邮件,所以我想一个小计时器会很好。 我大多想知道如何在程序运行时冻结鼠标。

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

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 install xautomation)

请帮忙。

0 个答案:

没有答案