模拟箭头键按在c# WPF
本文关键字:WPF 模拟 | 更新日期: 2023-09-27 17:49:40
我想在IF条件为真时模拟左箭头和右箭头键。到目前为止,我已经尝试了这个,但它不工作。我还使用win32.dll导入方法控制鼠标。如果我使用SendKeys.Send("LEFT");方法,我的鼠标移动不受控制。我感觉代码在调用之后没有运行。
我已经包括system.windows.forms在顶部,我做错了什么?
如何以简单的方式模拟箭头键?
if (shoulderLeft.Position.Z > shoulderRight.Position.Z)
{
status.Fill = new SolidColorBrush(System.Windows.Media.Colors.DarkBlue);
SendKeys.Send("LEFT");
// System.Windows.Forms.MessageBox.Show("Left ROTATION");
}
//right rotate
else if ((shoulderLeft.Position.Z < shoulderRight.Position.Z))
{
SendKeys.Send("RIGHT");
status.Fill = new SolidColorBrush(System.Windows.Media.Colors.Red);
}
您应该在代码中的LEFT
和RIGHT
周围添加括号:
SendKeys.Send("{LEFT}");
下面是完整的代码列表
SendKeys.Send("{LEFT}");
SendKeys.Send("{RIGHT}");
模拟输入事件通常不是一个好的做法,而是将在事件处理程序中运行的代码包装在一个参数化方法中,然后在想要模拟事件时调用该函数。例如(有点做作):
void myForm_MouseMoved(object sender, MouseEventArgs e)
{
MoveCharacter(e.X, e.Y);
}
void myForm_SomethingElseHappened(object sender, EventArgs e)
{
if(IsCharacterTooLow())
{
MoveCharacter(_currentPos.X, _currentPos.Y+20)
}
}