为什么我的表单没有收到模拟的“返回”按键/按下键?

时间:2019-02-06 22:03:22

标签: c# .net windows winforms

我的Windows窗体在启动时导航到一个网站,我还给了该窗体一个按钮以使我登录到所述网站。 我的问题是,现在我希望在运行程序时自动按下该按钮。我给按钮的制表符索引为0,这样我就可以在它运行时模拟“输入”按钮。但是,“输入”未在表单上注册。我的代码如下。我使用nuget的inputsimulator aka windowsinput(在控制台上工作),但不在窗体上

我不想使用发送/获取方法

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Drawing;
using WindowsInput.Native;
using WindowsInput;

namespace FormLogin
{
    class Program
    {
        [STAThread]
        static void Main()

        {
            var sim = new InputSimulator();
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
            sim.Keyboard.Sleep(3000).KeyDown((VirtualKeyCode.RETURN));
        }
    }
}

实际结果-加载表格,未按下按钮 预期结果-加载表格,按Enter键,我已经登录。

1 个答案:

答案 0 :(得分:-1)

我相信您需要使用KeyUp,而不是KeyDown。 KeyDown是触发的第一个事件,但通常是触发事件的KeyUp(当用户释放键时)。