【问题标题】:Capture Keyboard events with an ASP.NET MVC application from the server PC使用 ASP.NET MVC 应用程序从服务器 PC 捕获键盘事件
【发布时间】:2020-03-20 12:56:38
【问题描述】:

我有一个通过 IIS Express 托管在 Windows 10 机器上的 ASP.NET MVC 应用程序,我希望能够在服务器计算机上捕获键盘敲击(不是来自 Web 浏览器窗口的客户端,而是服务器本身)。

我尝试了 MouseKeyHook 库,它在 Winforms 项目的全局事件上运行良好,但在 ASP.NET MVC 项目中却不行。有没有其他方法可以做到这一点?

更新: 我最终从控制台应用程序和 IIS Express 自行托管 Web 应用程序,然后将条形码阅读器配置为串行 USB 设备而不是 HID 键盘,SerialPort 对象用于与其通信,比键盘敲击更快、更优雅.

【问题讨论】:

  • 在服务器端捕获键盘事件是非常奇怪的任务。最初的目的是什么?
  • blog.lextudio.com/… 会话隔离。
  • @Maradik 我有一个网络应用程序,我需要捕获通过 USB 连接到服务器并充当 HID 键盘的条形码扫描仪的输入,目前我有一个捕获键盘的 winforms 应用程序笔划并通过 API 将其本地发送到服务器端,但如果这是 Web 应用解决方案的一部分会更好
  • @JOHNWHICK 我不知道细节。但总的来说,您当前使用 API 的解决方案会更好,因为您可以将 Web 服务器部署在任何地方(并且仅限一个实例),并且只能在工作站上部署精简应用程序。

标签: c# .net asp.net-mvc iis keystroke


【解决方案1】:

在我看来,没有办法满足您的要求。 iis 或 windows 服务应用程序无法捕获用户交互。无论是鼠标点击还是键盘交互,都不允许。

【讨论】:

  • 正确。 IIS(不是 IIS Express)在运行 Windows 服务的会话 0 中运行,该会话具有单独的桌面环境并且无权访问本地控制台会话(会话 1)。虽然可以在每个服务的基础上覆盖它,但 IIS 不是为此而设计的,并且可能会hard 崩溃。虽然 IIS Express 确实在本地用户的会话中运行,但它是一个允许外部连接的 PITA。
  • 我没有用IIS,我用的是IIS Express,怎么办?
猜你喜欢
  • 2010-12-27
  • 2016-11-28
  • 1970-01-01
  • 2022-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多