【问题标题】:Determine input source to Java program确定 Java 程序的输入源
【发布时间】:2018-09-14 17:33:17
【问题描述】:

我有一个 AutoHotKey 脚本,它可以将击键发送到我计算机上正在运行的 Java 程序。 Java 程序如何判断击键来自这个特定的脚本?我想这与 Java 运行时和进程 API 有关。

【问题讨论】:

  • 你想完成什么?为什么您认为发现这些信息是解决方案的一部分?
  • Java 程序只有在接收到来自特定源(在本例中为 AutoHotKey 脚本)的击键时才必须以特定方式运行。
  • 您是否在尝试检测 AutoHotkey bot?
  • 这是不可能的。 AutoHotkey 使用系统服务来注入输入。那些系统服务不记录源。您唯一可以确定的是,输入是由代表硬件设备的驱动程序生成的,还是通过软件生成的(请参阅KBDLLHOOKSTRUCT)。这听起来仍然像XY Problem

标签: java windows autohotkey


【解决方案1】:

Java 没有本地方式来判断点击是否来自外部源,除非外部源通过一些隐藏的输入通知接收应用程序自己。

Java 在虚拟机中运行,与 C / C++ 等本地语言相比,底层平台以有限的方式暴露

如果 JVM 之外的机器人/宏/脚本正在使用,比如说 java REST API 或 SOAP,它可以编写一个 header 或其他不同的东西来向接收程序报告自己。如果您有桌面客户端,您可以通过设置隐藏字段或其他类似机制来做类似的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多