KaiOnisan350
2022-01-17T03:54:04+00:00
本人java码农,对windows的开发不是很了解,听说泥潭程序员多,问个问题
MD的窗口似乎进行了截图保护(也可能是硬件加速的问题?),通过win32 api截图得到的图像全黑,试了下obs的窗口捕获也是一样的问题
现在换了个思路用窗口坐标+宽高对桌面截图做裁切,可以做到窗口100%在屏幕内且未被阻挡时的图像获取,但是如果前面有窗口遮挡就寄了
有熟悉unity的大佬帮看下这个窗口用句柄截图全黑的原因吗
感觉走远了,查询到的资料基本都指向了DDraw加速导致黑屏,但是巨硬又没开放访问Overlay surface中数据的api,想实现只能hook DirectDraw,那可能还不如读内存取卡id安全了...
有没有DirectX大佬救一手
[quote][pid=583472624,30380893,1]Reply[/pid] Post by [uid=38317064]Ryo_0[/uid] (2022-01-22 12:17):
感觉走远了,查询到的资料基本都指向了DDraw加速导致黑屏,但是巨硬又没开放访问Overlay surface中数据的api,想实现只能hook DirectDraw,那可能还不如读内存取卡id安全了...
有没有DirectX大佬救一手[/quote]似乎存id的地址很好搞到啊,读内存感觉更方便,另外如果不在线查卡,而是利用ygopro的数据离线查询就更好了。
[quote][pid=583481411,30380893,1]Reply[/pid] Post by [uid=38950433]deltaandlight[/uid] (2022-01-22 12:59):
似乎存id的地址很好搞到啊,读内存感觉更方便,另外如果不在线查卡,而是利用ygopro的数据离线查询就更好了。[/quote]读内存有可能吃k社康的,现在个人问题比较多的那个中文插件就是读内存的
[quote][pid=583484573,30380893,1]Reply[/pid] Post by [uid=628344]midearth[/uid] (2022-01-22 13:14):
读内存不会被判定为外挂吗?[/quote]又没有本地反作弊,怕什么。[s:ac:哭笑]
Reply to [pid=583481411,30380893,1]Reply[/pid] Post by [uid=38950433]deltaandlight[/uid] (2022-01-22 12:59)
计划就是用ygo的数据,现在主要的问题是如何在不对程序进行比较越界的操作的前提下,获取到卡的信息,因为一些windows图形系统设计的问题,现在可能只能支持100%窗口显示还不能被遮挡的情况了
为啥选择图像识别而不是读内存绕远路主要就是怕K蛇后续追加反外挂直接ban了,因为截图图像识别的特征和主播开个obs直播是一样的,除非插件被黑名单识别进程信息了,不然一般是不会被行为检测的反外挂程序认定是外挂的
其实再怎么说也是第三方,只不过没有给用户带来"额外"优势,只是把起跑线拉平,我个人觉得K蛇是不会管这种方式的卡查的
直接用discord给朋友直播了一会,没啥问题,discord的管理员权限都没
Reply to [pid=583493559,30380893,1]Reply[/pid] Post by [uid=8815120]shadowdreamer[/uid] (2022-01-22 13:58)
是窗口捕获还是桌面捕获?窗口捕获的话可以麻烦试一下移动一个窗口到游戏窗口的前面看下捕捉到的画面会不会出现吗?
Reply to [pid=583495609,30380893,1]Reply[/pid] Post by [uid=38317064]Ryo_0[/uid] (2022-01-22 14:09)
discord里面玩一些游戏就有一键直播的按钮,点一下就能直播。应该是捕捉窗口,覆盖窗口随便移动都没问题
找到一个方案,放弃掉Windows7的支持,使用Windows10的1903以上版本里新给的Windows.Graphics.Capture接口,就可以取到D3D的图像了,性能还很好,对不起了Windows7用户[s:ac:哭笑]