• 又一个工具:SaveScreen


    你是否有过这种尴尬时刻?

    按下Win+Shift+S,然后点击通知,在点击保存,再选择路径,

    然后就终于截好了一张图。


    那我,有过这样的高光时刻:

    运行程序,等待通知消失后,按下Ctrl+Alt+S就可以截图,还可以多按几次来批量截图。

    截好图之后,再按Ctrl+Alt+Q来退出,这之后就把程序关闭得干干净净。


    这就是我今天给大家带来的作品:SaveScreen

    它的名字取材于键盘上的PrintScreen键,因为这个软件可以像PrintScreen一样方便的保存截图。


    老惯例:话不多说,上代码!!

    from system_hotkey import SystemHotkey
    import pyautogui
    import cv2
    import win32api,win32con
    from win10toast import ToastNotifier
    import os
    
    if not os.path.exists("./截图"): #创建截图目录
        os.mkdir("./截图") 
    
    #通知相关,为了让程序有存在感
    toaster = ToastNotifier()
    
    #获取屏幕尺寸
    scr_w=win32api.GetSystemMetrics(win32con.SM_CXSCREEN)
    scr_h=win32api.GetSystemMetrics(win32con.SM_CYSCREEN)
    
    #图像计数器
    img_count=0
    
    #保存图片的函数
    def save_screen(event):
        global img_count
        print(event)
        img_count+=1
        img = pyautogui.screenshot(region=[0,0,scr_w,scr_h]) # x,y,w,h
        img.save('./截图/'+str(img_count)+'.png')
        toaster.show_toast('已保存第 '+str(img_count)+' 张截图', '已保存截图至 '+'./截图/'+str(img_count)+'.png', duration=1)
    
    #热键
    hk = SystemHotkey()
    hk.register(('control', 'alt', 's'), callback=save_screen)
    
    hk_esc = SystemHotkey()
    hk_esc.register(('control', 'alt', 'q'), callback=exit)
    
    toaster.show_toast('按Ctrl+Alt+S来快速保存截图', '完美!快捷键注册成功!通知消失后就可以按下Ctrl+alt+S来快速保存截图了。(按Ctrl+Alt+Q来退出程序)')
    
    while True:
        print('我要保持清醒!(保证程序不退出)')

    没错,代码就这。

    毕竟程序功能并不复杂

    目前需要改进的地方:

    • 必须要在通知消失后才能进行下一步操作(解决办法未知)
    • 路径不可选
    • 截图快捷键不是我想要的Shift+PrtScr(解决办法未知)
    • 退出快捷键不起作用(解决办法未知)

    建议

    • 用PythonW来运行此程序,如果有时间,我会把程序打包成exe并隐藏Consle
    • 运行时退出QQ,因为此软件与QQ的截图快捷键有冲突
  • 相关阅读:
    C#中的cookie编程
    C# 键值对数据排序
    C#操作json类型数据
    深刻理解C#的传值调用和传引用调用
    .Net程序员玩转Android开发--ListView单击事件
    C#与Visual Basic的异与同
    初识C#程序结构
    【转】Java学习---线程间的通信
    【转】Mysql学习---MySQL悲观锁中的排它锁
    Linux uptime命令详解
  • 原文地址:https://www.cnblogs.com/TotoWang/p/save_screen.html
Copyright © 2020-2023  润新知