如何在java中使用Windows API获取当前鼠标光标类型? (光标类型表示:指针,文本光标,忙碌光标和其他类别)
我找到了一个链接Here
其中api为
BOOL WINAPI GetCursorInfo(
__inout PCURSORINFO pci
);
但是如何在java中使用api
答案 0 :(得分:2)
我认为你最接近的是:
答案 1 :(得分:0)
您可以使用JNA - java本机访问。它提供对本机库的访问,如Windows中的DLL。 https://github.com/twall/jna#readme
答案 2 :(得分:0)
这在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)