c# - 等待C#中的按键
问题描述
我有一个 PuppeteerSharp 应用程序,它执行一些基本的浏览器自动化。申请周期应如下所示:
- 启动浏览器 (Chrome)
- 获取搜索词
- 打开网址“google.ch”
- 在搜索输入中输入搜索词
- 按回车
- 等待任何应用程序中的左箭头键或右箭头键按下(其他按键应该没有任何影响)
- 如果按下左箭头键,则执行一些逻辑
- 否则,如果按下右箭头键,则执行一些逻辑
我的问题从第 6 步开始。我找不到等待左箭头键或右箭头键按下的方法。
这是我当前的代码和一些伪代码,我希望“按键等待”逻辑看起来像:
using System.Threading.Tasks;
using PuppeteerSharp;
namespace GoogleMapsChecker
{
internal class Program
{
private static async Task Main(string[] args)
{
// launch browser and save in variable
var browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = false,
ExecutablePath = @"C:\Program Files\Google\Chrome\Application\chrome.exe" // get path to chrome executable
});
var page = await browser.NewPageAsync();
var searchTerm = "searchTerm";
await page.GoToAsync("https://www.google.ch/");
await Task.Delay(5000);
//Click on google search box
await page.ClickAsync(".gLFyf");
await page.Keyboard.SendCharacterAsync(searchTerm);
await page.Keyboard.PressAsync("Enter");
Wait for KeyPress(LeftArrow || RightArrow)
{
if (KeyPress(LeftArrow))
{
//do stuff
}
else if (KeyPress(RightArrow))
{
//do other stuff
}
}
}
}
}
我怎样才能等到按下特定键,然后根据按下的键进一步动作?
更新: 你们中的一些人提到了针对控制台应用程序的类似问题。我的应用程序是一个控制台应用程序,但即使我的程序不在焦点上,我也想检测按键。我尝试了引用问题的答案,但没有解决我的问题。
解决方案
推荐阅读
- java - Proguard:如何防止在Android中重命名Packagename?
- python - ModuleNotFoundError:没有名为“skmultilearn”Jupyter 的模块
- apache - 尝试拒绝除一个域之外的所有连接
- assembly - 将 c++ 转换为 arm 程序集
- acumatica - Acumatica 是否有计算 GL 帐户摘要信息的对象?
- c - 启动失败。在 Eclipse 中找不到二进制文件
- java - 建筑名称
- javascript - 如何显示(或调用)在javascript中的数组内定义的匿名函数的内容
- php - 运行一个 shell 脚本,然后显示来自 PHP 的文件的内容
- angular - 当 Angular 5 成为当前版本时,如何在 2018 年使用 Angular 4?