发送延迟10秒的密钥-C#

本文关键字:密钥 -C# 10秒 延迟 | 更新日期: 2023-09-27 18:26:36

我需要在代码中的SendKeys.Send上设置一个延迟。如何做到这一点?

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

为什么我需要这个由于我的系统速度较慢,谷歌Chrome大约需要10秒才能启动,所以我需要将Sendkeys的延迟设置为10秒,因为我希望在谷歌Chrome加载后按键

举个例子就好了。谢谢

发送延迟10秒的密钥-C#

只需在这两个动作之间休息。

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

一个简单的谷歌搜索就会出现:

System.Threading.Thread.Sleep(10000);

但请记住,更好的方法是每秒循环一次,检查Chrome是否真的启动了,因为这将更好地处理以下情况:

  1. Chrome的启动速度突然变快了(这样你就不会不必要地等待了)
  2. Chrome需要11秒才能启动一天(你的10秒延迟脚本失败得很惨)

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

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

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

Thread.Sleep(10000)

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

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

只需使用

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

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