如何在java中使用Windows API获取当前的鼠标光标types?

我怎样才能得到当前的鼠标光标在Java中使用Windows API的types? (游标types是指:指针,文本游标,繁忙游标和其他类别)

我在这里find了一个链接

那里的API是给定的

BOOL WINAPI GetCursorInfo( __inout PCURSORINFO pci ); 

但是如何在java中使用api

我想最接近你会得到通过:

  1. 在您的java应用程序中找到focusOwner组件
  2. 调用getCursor()。getType();

您可以使用JNA – java原生访问。 它提供对本地库的访问,如Windows中的DLL。 https://github.com/twall/jna#readme

这在Win7上运行的非常好。 脚本是Python,但应该很容易翻译成任何其他语言。 当然,它只适用于相应的应用程序不使用自定义游标的情况:

 from win32con import IDC_APPSTARTING, IDC_ARROW, IDC_CROSS, IDC_HAND, \ IDC_HELP, IDC_IBEAM, IDC_ICON, IDC_NO, IDC_SIZE, IDC_SIZEALL, \ IDC_SIZENESW, IDC_SIZENS, IDC_SIZENWSE, IDC_SIZEWE, IDC_UPARROW, IDC_WAIT from win32gui import LoadCursor, GetCursorInfo def get_current_cursor(): curr_cursor_handle = GetCursorInfo()[1] return Cursor.from_handle(curr_cursor_handle) class Cursor(object): @classmethod def from_handle(cls, handle): for cursor in DEFAULT_CURSORS: if cursor.handle == handle: return cursor return cls(handle=handle) def __init__(self, cursor_type=None, handle=None): if handle is None: handle = LoadCursor(0, cursor_type) self.type = cursor_type self.handle = handle DEFAULT_CURSORS \ = APPSTARTING, ARROW, CROSS, HAND, HELP, IBEAM, ICON, NO, SIZE, SIZEALL, \ SIZENESW, SIZENS, SIZENWSE, SIZEWE, UPARROW, WAIT \ = Cursor(IDC_APPSTARTING), Cursor(IDC_ARROW), Cursor(IDC_CROSS), \ Cursor(IDC_HAND), Cursor(IDC_HELP), Cursor(IDC_IBEAM), Cursor(IDC_ICON), \ Cursor(IDC_NO), Cursor(IDC_SIZE), Cursor(IDC_SIZEALL), \ Cursor(IDC_SIZENESW), Cursor(IDC_SIZENS), Cursor(IDC_SIZENWSE), \ Cursor(IDC_SIZEWE), Cursor(IDC_UPARROW), Cursor(IDC_WAIT)