推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
yyb123456789
V2EX  ›  Python

为什么我用程序截取 QQ 聊天界面是黑框呢?当聊天界面不在被其他界面挡住时,我是针对窗口句柄进行截图的,有知道的吗?

  •  
  •   yyb123456789 · Apr 23, 2020 · 4050 views
    This topic created in 2217 days ago, the information mentioned may be changed or developed.
    20 replies    2020-04-23 19:51:54 +08:00
    delectate
        1
    delectate  
       Apr 23, 2020
    因为 qq 不是标准的 winform 。也不是微信那种 directUI 画出来的。
    所以即使拿到了句柄,只要不是前台展示,就不能截图。感觉像是后台隐藏的时候,只进行局部刷新一样。
    yyb123456789
        2
    yyb123456789  
    OP
       Apr 23, 2020
    那有什么办法可以解决吗?给个思路也成
    ysc3839
        3
    ysc3839  
       Apr 23, 2020 via Android
    @delectate QQ 的界面是 Direct UI 。
    具体是什么问题还是看看截图的代码吧。同时试试 OBS Studio 的窗口捕获看看能不能截到。
    yyb123456789
        4
    yyb123456789  
    OP
       Apr 23, 2020
    @ysc3839 应该不是代码的问题,同样的代码只是把句柄换成 QQ 的就不行,其他界面的句柄,试了几个是可以的
    对桌面截图可以截到 QQ 的,但是我想针对句柄截图,即使界面不在最前也可以截到图
    ysc3839
        5
    ysc3839  
       Apr 23, 2020 via Android
    @yyb123456789 猜测 QQ 可能使用了 Direct2D 之类的进行绘图,试试 OBS Studio 的“游戏捕获”。
    yyb123456789
        6
    yyb123456789  
    OP
       Apr 23, 2020
    @ysc3839 好的,谢谢了,我这就试下
    ysc3839
        7
    ysc3839  
       Apr 23, 2020 via Android
    @yyb123456789 目前我只知道 UWP App 用 OBS Studio 的窗口捕获和游戏捕获都不能截取,传统 Win32 应用似乎都没问题 (我没试过 QQ 如何)。如果 QQ 真的不能捕获的话我也没什么好办法了,只能说确实存在这种情况。
    yyb123456789
        8
    yyb123456789  
    OP
       Apr 23, 2020
    @ysc3839 刚试了,不行。QQ 也是 UWP App 的一种吧,捕获不到界面,是个黑框框。和代码结果一样
    ysc3839
        9
    ysc3839  
       Apr 23, 2020 via Android
    @yyb123456789 QQ 有几个版本的,难道你用的是那个功能很少的 UWP 版?
    yyb123456789
        10
    yyb123456789  
    OP
       Apr 23, 2020
    @ysc3839 应该是较新的版本了吧官网下的,QQ9.2.3(26683) 窗口捕获可以捕获浏览器、pycharm 等的,但是 QQ 是黑框
    mywaiting
        11
    mywaiting  
       Apr 23, 2020   ❤️ 1
    恶意猜测:灭了 QQProtect 再试试~
    cz5424
        12
    cz5424  
       Apr 23, 2020 via iPhone
    权限问题?
    CheekiBreeki
        13
    CheekiBreeki  
       Apr 23, 2020 via Android
    這個和遊戲反作弊有點像
    crab
        14
    crab  
       Apr 23, 2020
    QQ 有保护,别针对窗口句柄截图,GetDC 整个屏幕,再按区域提取。
    ysc3839
        15
    ysc3839  
       Apr 23, 2020 via Android
    @yyb123456789 不是微软商店下的就不是 UWP 版。
    ysc3839
        16
    ysc3839  
       Apr 23, 2020 via Android
    @crab 这保护也太奇怪了,为啥截取整个屏幕又可以呢?
    yyb123456789
        17
    yyb123456789  
    OP
       Apr 23, 2020
    @crab 桌面截图是可以的,但是我想即使不在最前端我也可以截图
    yyb123456789
        18
    yyb123456789  
    OP
       Apr 23, 2020
    @mywaiting 笑屎了,protect 杀了之后,QQ 也跟着退出了
    yyb123456789
        19
    yyb123456789  
    OP
       Apr 23, 2020
    @cz5424 不是权限问题的
    yyb123456789
        20
    yyb123456789  
    OP
       Apr 23, 2020
    @ysc3839 不清楚什么是 UWP 版本,就是在桌面时截取桌面才能截到,其他方法都截不到
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4194 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 10:10 · PVG 18:10 · LAX 03:10 · JFK 06:10
    ♥ Do have faith in what you're doing.