发送密钥延迟10秒 - C#

时间:2013-08-05 21:57:45

标签: c# sendkeys

我需要在代码中设置SendKeys.Send的延迟。怎么办呢?

case "Open Google Chrome":
System.Diagnostics.Process.Start(@"C:\Program Files\Google\Chrome\Application\chrome.exe");
SendKeys.Send("{ENTER}");
break;

为什么我需要这个? 由于我的系统速度很慢,谷歌浏览器启动时间大约需要10秒,所以基本上我需要将Sendkeys的延迟设置为10秒,因为我希望在Google Chrome加载后按下该键。

一个例子将不胜感激。感谢。

5 个答案:

答案 0 :(得分:5)

只是睡在两个动作之间。

System.Diagnostics.Process.Start(@"C:\Program Files\Google\Chrome\Application");
System.Threading.Thread.Sleep(TimeSpan.FromSeconds(10));
SendKeys.Send("{ENTER}");

答案 1 :(得分:3)

简单的Google搜索就会出现:

System.Threading.Thread.Sleep(10000);

但请记住,一个更好的方法是循环每一秒,检查Chrome是否实际启动,因为这样可以更好地处理以下情况:

  1. Chrome启动突然变得更快(你不会再不必要地等待)。
  2. Chrome需要11秒才能启动一天(您的十秒延迟脚本会失败)。

答案 2 :(得分:2)

您可以使用Thread.Sleep(10 * 1000);,但这会使当前线程休眠10秒。如果您不想让当前线程进入睡眠状态,我建议您使用Timer

var timer = new System.Threading.Timer((x) =>
{
    SendKeys.Send("{ENTER}");
}, null, 10000, Timeout.Infinite);

这将在ThreadPool线程中执行,防止当前线程被阻塞。

答案 3 :(得分:0)

Thread.Sleep(10000)

http://msdn.microsoft.com/en-us/library/d00bd51t.aspx

(编辑:删除了注释中正确指出的CurrentThread引用)

答案 4 :(得分:0)

只需使用

Thread.sleep(10000) 
SendKeys.Send("{ENTER}";

您使用10000,因为它以毫秒为单位