我已经制作了一个程序,我可以控制运行我的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)
请帮忙。