幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!
gdi+限制很大,用了D3D之类的硬件加速的窗口都取不到,现在好多程序都是浏览器套皮了基本都默认开硬件加速了取出来颜色基本始终是黑色,感觉没啥好方法了ahk上写dx的代码难度可太高了(https://stackoverflow.com/questions/17130138/fastest-way-to-get-screen-pixel-color-in-c-sharp),不知道调用obs.dll的窗口采集来取色能不能解决
如果窗口是普通的用GDI+接口就能实现,但是用来D3D、openGL等硬件加速的都是取不到颜色的(比如chrome有硬件加速会显示ClassNN: Intermediate D3D Window就不行,关闭硬件加速或许可以)。
GDI+方案的原理
先获取窗口的hWnd
通过gdiplusGdipCreateFromHWND和gdiplusGdipGetDC取到hDC,通过gdi32BitBlt 复制指定位置的内容到Bitmap里再用gdiplusGdipBitmapGetPixel取色即可