【问题标题】:Web Application which requires keyboard input even without browser focus即使没有浏览器焦点也需要键盘输入的 Web 应用程序
【发布时间】:2010-11-05 11:19:41
【问题描述】:

我正在创建一个需要键盘输入的网站应用程序,特别是没有浏览器焦点。

在不透露太多关于我伟大的应用程序想法 (=P) 的情况下,我想响应(甚至只是一次)键盘按键,同时了解浏览器不会获得焦点。

我在这方面做了很多研究,我发现了很多关于键盘“挂钩”的帮助,所以无论哪个应用程序有焦点,我都可以对按键输入做出反应(我一直在玩的那些)与在 vc# 中)。这些适用于可执行文件,但我不确定如何使用我的 Web 应用程序将它们放入浏览器。

我的问题是:无论浏览器是否有焦点,我都可以使用 ActiveX(或类似 wpf 的任何东西吗?)来访问键盘输入。

非常感谢您抽出宝贵时间,在浪费时间学习如何创建和使用 ActiveX 之前,我很想了解这种事情是否可行(只是想知道它不是)。

【问题讨论】:

  • 听起来您想在网页上粘贴键盘记录器。不透露太多关于你伟大的应用程序的想法(=P)你为什么要打扰?这听起来像是一个足以让消防车通过的安全漏洞。
  • @Vandenberg 我认为这就是为什么有六个警告、弹出窗口和对话框警告您确保您信任该给定组织的原因……这绝不是一次秘密行动对于键盘记录器。就我而言 - 我觉得可以激活的单个“热键”会极大地增加用户体验。如果我的要求是不可能的,我将提供一个可下载的版本,这将允许键盘挂钩。
  • 我很确定大多数浏览器的“信任级别”都不够高,无法允许此类事情发生。
  • @Barber 我认为你是对的,但我确实想知道是否有人确切知道。

标签: c# web-applications activex hook keyboard-hook


【解决方案1】:

执行此操作的最佳(可能唯一)方法可能是启动一个单独的中等完整性进程(您必须在安装控件时正确注册它,否则它不会让您启动它)并拥有该进程在您需要访问权限时运行。然后,您可以使用进程间通信向控件报告它应该知道的事情发生时,可能会向 javascript 触发事件。

当然,要非常小心如何使用它,因为如果使用不当,可能会导致严重的安全漏洞,从而使每个人都讨厌你(大多数开发人员认为这是一件坏事)。对于进程间通信,您可以使用 boost IPC 或命名管道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-11
    • 2017-01-23
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    相关资源
    最近更新 更多