发送延迟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加载后按键
举个例子就好了。谢谢
只需在这两个动作之间休息。
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是否真的启动了,因为这将更好地处理以下情况:
- Chrome的启动速度突然变快了(这样你就不会不必要地等待了)
- 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是因为它是以毫秒为单位的