1

我正在尝试在 java 中创建一个类似于 spy++ 的应用程序,我可以在其中获取我将鼠标悬停的每个元素的类/标题/句柄。例如:

  1. 如果我们在任务栏上移动鼠标,spy 工具会显示信息为: Handle : 000100AA Caption : Running applications Class : MSTaskListWClass
  2. 如果我们将鼠标放在 Windows 计算器的一个按钮上(比如说“1”),间谍工具将显示标题:1

我已经使用以下代码获得前景窗口:

GetWindowTextW(GetForegroundWindow(), buffer, MAX_TITLE_LENGTH);

和进程名称:

Pointer process = OpenProcess(PROCESS_QUERY_INFORMATION
                | PROCESS_VM_READ, false, pointer.getValue());
        GetModuleBaseNameW(process, null, buffer1, MAX_TITLE_LENGTH);

但我仍然无法获得按钮/文本框的标题和类。请帮助做同样的事情。

4

1 回答 1

0

以下答案适用于鼠标单击事件。

使用jnativehook处理全局鼠标点击事件。当用户单击时,找出前景窗口及其位置。

您必须创建一个具有本机 winapi 调用的 dll。然后在你的java程序中加载这个dll。

  1. 首先使用 jnativehook 的nativeMousePressed获取全局鼠标位置。
  2. 找到前景窗口的句柄。
  3. 从句柄中获取位置进程 ID 。
于 2013-10-21T05:10:44.807 回答