模拟箭头键按在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);
                            }

模拟箭头键按在c# WPF

您应该在代码中的LEFTRIGHT周围添加括号:

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)
    }
}