在 C# 中等待按键

问题描述

我有一个 PuppeteerSharp 应用程序,它执行一些基本的浏览器自动化。 申请周期应如下所示:

  1. 启动浏览器 (Chrome)
  2. 获取搜索
  3. 打开网址“google.ch”
  4. 搜索输入中输入搜索
  5. 按回车
  6. 等待任何应用程序中的左箭头键或右箭头键按下(其他按键不应有任何影响)
  7. 如果按下左箭头键,则执行一些逻辑
  8. 否则如果按下右箭头键,则执行一些逻辑

我的问题从第 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
                }
            }
        }
    }
}

我怎样才能等到按下特定键,然后根据按下的键进一步动作?

更新: 你们中的一些人注意到了针对控制台应用程序的类似问题。我的应用程序是一个控制台应用程序,但即使我的程序不在焦点上,我也想检测按键。我尝试了参考问题的答案,但没有解决我的问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)