V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
wyds591101
V2EX  ›  Python

Windows 锁屏下,怎么通过 Python 截图运行桌面

  •  
  •   wyds591101 · 2022-01-18 15:41:25 +08:00 · 3072 次点击
    这是一个创建于 821 天前的主题,其中的信息可能已经有所发展或是发生改变。

    跟各位大佬请求一个问题。

    我现在有一个需求是,通过 Python 进行 windows 的全屏截图,但是 Windows 的屏幕是处于锁定状态的。

    现在测试,通过 Windows 的 user32 调用的话,直接调用截图功能,只能截取到锁屏的图片,但是通过句柄的方式截图,就只能截取到对应句柄的,还是没有办法截取到运行桌面的截图。

    请教:我应该通过什么样的方式截图,才可以在锁屏的情况下,截取到我运行桌面的图片,谢谢。

    15 条回复    2022-02-06 22:49:37 +08:00
    icepie
        1
    icepie  
       2022-01-18 15:44:49 +08:00
    先 rdp 进入桌面截屏?
    ysc3839
        2
    ysc3839  
       2022-01-18 15:46:02 +08:00
    应该没办法,应该是只能截到“当前桌面”的图,锁屏时“当前桌面”是锁屏界面,截不到其他桌面的图。
    wyds591101
        3
    wyds591101  
    OP
       2022-01-18 15:47:57 +08:00
    @icepie 脚本运行的时候,没有连接。还是大佬指定是 python 自己写 rdp 连接进去去截图
    wyds591101
        4
    wyds591101  
    OP
       2022-01-18 15:48:20 +08:00
    @ysc3839 我当前的状态是这样的,锁屏后截图截取到的是当前桌面。
    icepie
        5
    icepie  
       2022-01-18 16:08:27 +08:00
    @wyds591101 我的想法是以当前用户 rdp 登陆进去截图 不知道可信不
    wyds591101
        6
    wyds591101  
    OP
       2022-01-18 16:26:10 +08:00
    @icepie 本机运行 rdp 远程到本机,觉得会有问题,还没有找到 python3 的 rdp 包,找到了一个 py2 的
    ch2
        7
    ch2  
       2022-01-18 16:32:10 +08:00
    没有用户 session 就没有桌面
    wyds591101
        8
    wyds591101  
    OP
       2022-01-18 16:37:40 +08:00
    @ch2 大佬有解决方案吗
    minami
        9
    minami  
       2022-01-18 16:52:32 +08:00
    注册成服务,然后用 Desktop Duplication 接口截屏
    wyds591101
        10
    wyds591101  
    OP
       2022-01-18 17:19:46 +08:00
    @minami 收到,谢谢,我研究下。
    kakalongcn
        11
    kakalongcn  
       2022-01-19 13:30:18 +08:00
    是云服务器吗?如果是阿里云或者腾讯云,可以通过服务商提供的网页版管理后台登录服务器,运行你的程序,然后再退出远程登录。另外,用向日葵远程登录也可以达到类似效果。
    wyds591101
        12
    wyds591101  
    OP
       2022-01-19 13:54:07 +08:00
    @minami 我没成功,我使用的是 d3dshot
    wyds591101
        13
    wyds591101  
    OP
       2022-01-19 13:54:41 +08:00
    @kakalongcn 不是的,是本地的电脑,默认不远程不使用向日葵 /todesk/tv 之类的
    icespace
        14
    icespace  
       2022-02-03 11:14:38 +08:00
    采用 vnc 控制,桌面设成布自动锁屏,否则没有办法。windows 在锁屏时候布给你渲染桌面,你拿啥都抓不到,因为根本没有
    wyds591101
        15
    wyds591101  
    OP
       2022-02-06 22:49:37 +08:00
    @icespace 嗯 确实什么都没有。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2582 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:02 · PVG 00:02 · LAX 09:02 · JFK 12:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.