首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中使用windows API获取当前的鼠标光标类型?

问如何在java中使用windows API获取当前的鼠标光标类型?
EN

Stack Overflow用户
提问于 2012-04-24 00:55:37
回答 3查看 2.6K关注 0票数 1

如何在java中使用windows API获取当前的鼠标光标类型?(光标类型:指针、文本光标、忙碌光标等类别)

我找到了一个链接Here

其中,api给出为

代码语言:javascript
复制
BOOL WINAPI GetCursorInfo(
  __inout  PCURSORINFO pci
);

但是如何在java中使用api呢?

EN

回答 3

Stack Overflow用户

发布于 2012-04-24 01:14:35

我认为你能得到的最接近的结果是:

在您的java应用程序中查找作为focusOwner

  • Call getCursor().getType();

的组件

票数 2
EN

Stack Overflow用户

发布于 2012-04-24 01:13:52

您可以使用JNA - java本机访问。它提供了对本机库的访问,比如windows中的DLL。https://github.com/twall/jna#readme

票数 0
EN

Stack Overflow用户

发布于 2013-04-11 19:12:55

这对我来说在Win7上运行得很好。脚本是用Python编写的,但是应该足够简单,可以翻译成任何其他语言。当然,只有当相应的应用程序没有使用自定义游标时,它才能起作用:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10284849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档