InputSimulator WindowsInput:等待Keyboard.TextEntry完成

时间:2018-08-13 12:37:55

标签: c# pinvoke sendinput inputsimulator

我想要类似SendKeys.SendWait("some_text")的东西,但是似乎sendKeys的pinvoke在我的操作系统上无法正常工作,因此我在许多地方建议使用InputSimulator Library更改为SendInput

所以我需要在某处引入一些文本,等待几秒钟,直到目标应用找到该文本并模拟向下键以选择第一个结果。

我正在使用与此类似的东西:

            // Clear text Input
            sim.Keyboard.KeyPress(VirtualKeyCode.HOME);
            sim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.SHIFT, VirtualKeyCode.END);
            sim.Keyboard.KeyPress(VirtualKeyCode.DELETE);    

            // Introducing new text
            if (!sMessage.Equals(""))
            {
                sim.Keyboard.TextEntry(sMessage);
                sim.Keyboard.Sleep(3000);

                sim.Keyboard.KeyPress(VirtualKeyCode.DOWN);
            }

在屏幕上显示的内容是,在3秒钟之后,引入了文本,在按下要结束的文本之前,按下了向下键。所以我要在搜索完成之前选择第一个结果。

我需要的是一种等待输入文本,再等待2/3秒以便可以完成搜索并最终选择第一个结果的方法。

我该如何处理?我还尝试使用Tasks.WaitAll创建和封装每条指令,而没有结果。

希望一切都清楚,否则请告诉我。

0 个答案:

没有答案