crlong33 发表于 2024-1-9 18:24

如何获取(或截图)游戏窗口的不同鼠标形状

玩过游戏都知道,打怪时鼠标一个刀的形状,捡东西时鼠标一个小手形状。我们如何通过一个程序,或者使用哪个API(C++语言)来捕获鼠标的不同形状呢?截图都可以,可以保存下来。目前截图都是截取不到鼠标形状,请教各位朋友啦。

159066563 发表于 2024-1-9 18:24

        Gdiplus::GdiplusStartupInput gdiplusStartupInput;
        ULONG_PTR gdiplusToken;
        Gdiplus::GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, nullptr);

        POINT pt;
        GetCursorPos(&pt);
        /*0 , 0 改一下*/
        if (pt.x == 0 && pt.y == 0) {
                CURSORINFO cursorInfo = {sizeof(cursorInfo)};
                GetCursorInfo(&cursorInfo);
                if (cursorInfo.flags == CURSOR_SHOWING) {
                        ICONINFO iconInfo;
                        GetIconInfo(cursorInfo.hCursor, &iconInfo);
                        Gdiplus::Bitmap bitmap(iconInfo.hbmColor, nullptr);
                        CLSID clsid;
                        CLSIDFromString(L"{557CF400-1A04-11D3-9A73-0000F81EF32E}", &clsid);
                        bitmap.Save(L"cursor.bmp", &clsid);
                        DeleteObject(iconInfo.hbmColor);
                        DeleteObject(iconInfo.hbmMask);
                }
        }

        CURSORINFO cursorInfo = {sizeof(cursorInfo)};
        GetCursorInfo(&cursorInfo);
        Gdiplus::GdiplusShutdown(gdiplusToken);

110395225 发表于 2024-1-9 20:15

CURSORINFO cursorInfo = { 0 };
cursorInfo.cbSize = sizeof(cursorInfo);

// 获取当前光标信息
if (GetCursorInfo(&cursorInfo)) {
    // 如果光标显示
    if (cursorInfo.flags == CURSOR_SHOWING) {
      // cursorInfo.hCursor 将会有当前显示的光标的句柄
    }
}

zhuzhenyun2003 发表于 2024-1-9 20:16

应该可以试一试吧

lala1 发表于 2024-1-9 21:46

如何获取(或截图)游戏窗口的不同鼠标形状

lala1 发表于 2024-1-9 21:46

lala1 发表于 2024-1-9 21:46
如何获取(或截图)游戏窗口的不同鼠标形状

如何获取(或截图)游戏窗口的不同鼠标形状

crlong33 发表于 2024-1-9 23:17

159066563 发表于 2024-1-9 22:05


哥,你这是Gdiplus是干什么的,第一次遇见呀:lol

ice1s 发表于 2024-1-10 07:00

666666

ice1s 发表于 2024-1-10 07:01

666666

icsh 发表于 2024-1-10 07:01

666666
页: [1] 2 3 4 5
查看完整版本: 如何获取(或截图)游戏窗口的不同鼠标形状