c# -如何获取当前光标状态(如果当前是箭头,手,等待等)

本文关键字:等待 如果 何获取 获取 状态 光标 | 更新日期: 2023-09-27 18:18:36

我尝试为一款游戏制作bot,但他们有很酷的反像素bot技术。

所以我想,"如果我能做一个只检查光标移到手上然后点击的机器人,它就会起作用,"因为我需要收集奖励盒子,当你把光标指向它时,它会变成"手"游标。

所以我对这个想法很高兴,但是在c#中,它不起作用!

在c# - Cursor.Current只检查光标状态的形式,而不是整个计算机,这不是我想要的。

那么,我怎样才能得到真正的游标类型状态呢?

c# -如何获取当前光标状态(如果当前是箭头,手,等待等)

好的,我找到了一些东西并使其工作,这里的代码,如果有人需要这个:

    private static string GetCursorState()
    {
        var h = Cursors.WaitCursor.Handle;
        CURSORINFO pci;
        pci.cbSize = Marshal.SizeOf(typeof(CURSORINFO));
        GetCursorInfo(out pci);

        return pci.hCursor.ToString();
    }
    [StructLayout(LayoutKind.Sequential)]
    struct POINT
    {
        public Int32 x;
        public Int32 y;
    }
    [StructLayout(LayoutKind.Sequential)]
    struct CURSORINFO
    {
        public Int32 cbSize;        // Specifies the size, in bytes, of the structure. 
        // The caller must set this to Marshal.SizeOf(typeof(CURSORINFO)).
        public Int32 flags;         // Specifies the cursor state. This parameter can be one of the following values:
        //    0             The cursor is hidden.
        //    CURSOR_SHOWING    The cursor is showing.
        public IntPtr hCursor;          // Handle to the cursor. 
        public POINT ptScreenPos;       // A POINT structure that receives the screen coordinates of the cursor. 
    }
    [DllImport("user32.dll")]
    static extern bool GetCursorInfo(out CURSORINFO pci);