【问题标题】:Can you make a keyboard shortcut to select a button on a website?您可以制作键盘快捷键来选择网站上的按钮吗?
【发布时间】:2021-04-18 19:01:09
【问题描述】:

这个问题主要是出于对可能发生的事情的好奇。我有兴趣了解任何想法。

如果我在一个网站上,是否可以为单击该网站上的按钮制作键盘快捷键?例如,如果我在google.com 上,是否可以在我自己的系统上的某处编写一个脚本来检测我在google.com 上,并使其在该站点处于运行状态时按ctrl-g在焦点上,它会点击Google Search?

如果您确定这是不可能的并解释了原因,我也很想知道。

【问题讨论】:

    标签: automation scripting web-crawler click ui-automation


    【解决方案1】:

    是的,这是可能的。

    我将简要介绍如何在 C# 和 Chrome 中执行此操作,但它不依赖于语言,也可以在 Edge 或 IE 中使用。

    1. 通过调用GetForegroundWindow API 获取当前焦点窗口。
    2. 通过调用GetWindowThreadProcessId API 获取进程ID。
    3. 获取process name by process id。 如果是 Chrome,请继续。
    4. 访问UI Automation COM 接口。 您将需要以您的语言使用 COM 接口,但在 C# 中这很容易:您需要向项目添加对 COM -> UIAutomationClient 的引用。这将为您生成一个wrapper,因此可以在代码中以通常的 OO 样式访问 COM 接口。
    5. 在 Chrome 中,必须首先启用 Accessibility options 才能访问 UIA。 可以通过导航到 chrome://accessibility/ 手动完成,但也可以通过 programmatically 完成。
    6. 使用 UI 自动化检测活动 URL。 您将需要使用 UIA 通过其名称或类名或其他唯一标识符在 UI​​ 树中查找地址栏。 您可以先检索UI Automation element for the Chrome window,然后使用FindAll method 查找子树中的地址栏以获取其Value property,其中应包含当前URL。
      Inspect tool 将帮助您调查Chrome UIA元素树和元素属性(如 Name 或 ClassName)。
    7. 执行相同的步骤,使用 UIA 在 UI 树中找到 Google 搜索按钮。 调用GetClickablePoint方法获取其可点击点。
    8. Click on the button 以编程方式使用 Win API。
    9. 要在全局快捷方式上执行此操作,您可以通过调用 SetWindowsHookEx API 来放置键盘挂钩。或使用library。 这里是another way

    就是这样,比看起来容易。

    【讨论】:

      猜你喜欢
      • 2021-02-27
      • 2011-12-12
      • 2013-03-31
      • 1970-01-01
      • 2014-11-04
      • 2010-10-02
      • 2014-02-05
      • 1970-01-01
      • 2021-12-27
      相关资源
      最近更新 更多