Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NET中的sendkeys问题_C#_.net_Sendkeys - Fatal编程技术网

C# NET中的sendkeys问题

C# NET中的sendkeys问题,c#,.net,sendkeys,C#,.net,Sendkeys,我有一个windows应用程序,在其中我使用发送键从一个窗口导航到另一个窗口。我的发送键序列就像在我的应用程序中激活另一个窗口,并向该窗口发送按键。但我发送的按键在激活另一个窗口的同一窗口中得到更新 但在几次按键之后,它将进入另一个窗口。似乎是发送键的同步问题。在发送下一个sendkey之前,是否有方法指定当前send key的操作已完成。是否尝试使用。这将等待发送密钥并处理操作后再继续 既然windows在您自己的应用程序中,为什么不提供一组函数来执行操作,而不是使用SendKeys呢。函数可

我有一个windows应用程序,在其中我使用发送键从一个窗口导航到另一个窗口。我的发送键序列就像在我的应用程序中激活另一个窗口,并向该窗口发送按键。但我发送的按键在激活另一个窗口的同一窗口中得到更新

但在几次按键之后,它将进入另一个窗口。似乎是发送键的同步问题。在发送下一个sendkey之前,是否有方法指定当前send key的操作已完成。

是否尝试使用。这将等待发送密钥并处理操作后再继续


既然windows在您自己的应用程序中,为什么不提供一组函数来执行操作,而不是使用SendKeys呢。函数可以在窗口创建并处于活动状态后创建窗口,您可以通过处理事件来检测该窗口,然后可以使用SendKeys将键击发送到新窗口(如果确实需要),否则可以再次调用window类上的函数来执行键击将导致的操作。您可能可以定义一个windows实现的公用程序来促进这种交互。

我发现sendkeys只不过是不可靠的。请改为尝试。

是的,我仅使用SendKeys.SendWait方法。有没有办法指定它必须持续的时间wait@zapping,这正是SendWait所做的,它发布密钥,然后调用Flush。第二次调用flush可能有效,也可能无效,这取决于时间安排,依赖时间安排总是有风险的@AvidProgrammer,我想问题是,在发送密钥时采取的操作可能是通过使用PostMessages Internal完成的,它基本上会发布一条消息并立即返回,因此SendWait毫无用处。在我的IMHO中,在两次调用之间人为地休眠是很糟糕的。我使用sendkeys添加了一个应用程序,当我为.net 2框架构建它时,它没有按预期工作(即使它没有抛出任何错误消息),但当我刚刚将目标框架更改为.net 4时,它工作得非常好!这不是很神奇吗?