【无用软件】sc_starter,ScreenCapture的快捷键增强

Github链接:

目的

众所周知,ScreenCapture 是一个极其比较轻量的windows截屏软件,但是,有一个极大的问题就是不支持快捷键……

所以我就写了个小玩意改进了一下软件体验

功能说明 / Features

本软件是 ScreenCapture 的启动器,提供以下功能:

  • 内置截图程序,无需额外安装
  • 自动注册全局快捷键
  • 支持自定义保存路径
  • 支持以时间戳命名
  • 文件防删除保护
  • 托盘菜单(右键可退出)
  • 自启动设置
  • 弹窗提醒截图状态(可选)

使用方法 / Usage

  1. 默认快捷键 / Default Hotkeys:

    功能 / Function 快捷键 / Hotkey 说明 / Description
    普通截图 / Screenshot Ctrl+Win+Alt+P 矩形区域截图 / Rectangular area capture
    长截图 / Long Screenshot Ctrl+Win+Alt+L 滚动截图 / Scrolling capture
    钉图 / Pin Image Ctrl+Win+Alt+T 将剪贴板图片钉到屏幕 / Pin clipboard image to screen
    启动应用 / Launch App Ctrl+Win+Alt+A 启动配置的外部应用程序 / Launch configured application
    打开配置 / Open Config Ctrl+Win+Alt+O 打开配置文件编辑 / Open config file for editing
    退出程序 / Exit Win+Ctrl+Shift+Esc 完全退出程序 / Exit application completely
  2. 自定义设置 / Custom Settings:

    • 使用 Ctrl+Win+Alt+O 打开配置文件
    • 修改后保存并关闭文件
    • 使用 Win+Ctrl+Shift+Esc 退出程序
    • 重新启动程序应用新配置

配置说明 / Configuration

# 设置文件使用说明 / Configuration File Instructions:
#
# ①程序启动时会自动处理配置文件
# ①The program will automatically process the configuration file when starting
#   - 如果文件不存在,会创建默认配置
#   - If the file does not exist, default settings will be created
#   - 如果某项配置缺失,会自动补充默认值。同目录下存在一默认配置文件,可自行参考补全过时配置
#   - If any setting is missing, default values will be used. A default configuration file exists in the same directory, you can refer to it to complete the outdated configuration
#
# ②配置更改后需要重启程序才能生效
# ②Program restart is required after configuration changes
#   - 使用快捷键 Win+Ctrl+Shift+Esc 退出程序
#   - Use Win+Ctrl+Shift+Esc to exit the program
#   - 重新启动程序加载新配置
#   - Restart the program to load new settings

[hotkey]
# 快捷键配置说明 / Hotkey Configuration:
# 1. 格式:控制键+控制键+...@实际键
# 1. Format: Modifier+Modifier+...@Key
# 2. 至少需要两个控制键,避免冲突,Fn系列可以不需要控制键
#    注:Fn键配置类似 `@F1`
# 2. At least two modifiers required to avoid conflicts, Fn series keys may not require modifiers
#    Note: Fn key configuration is like `@F1`
# 3. 支持的控制键 / Supported modifiers:
#    - WIN/WINDOWS/SUPER
#    - CTRL/CONTROL
#    - ALT
#    - SHIFT
# 4. 支持的实际键 / Supported keys:
#    - A-Z:字母键 / Letters
#    - 0-9:数字键 / Numbers
#    - F1-F24:Fn键 / Fn keys
#    - VK_系列:特殊键 / Special keys

# 控制截屏 / Screen capture
screen_capture = "Ctrl+Win+Alt@P"

# 控制截长屏 / Screen capture long
screen_capture_long = "Ctrl+Win+Alt@L"

# 将剪贴板中的图像钉到屏幕 / Pin clipboard image to screen
pin_to_screen = "Ctrl+Win+Alt@T"

# 退出软件 / Exit application
exit = "Win+Ctrl+Shift@VK_ESCAPE"

# 打开配置文件 / Open configuration file
open_conf = "Ctrl+Win+Alt@O"

# 调用其它软件 / Launch other application
# 该软件将自动置顶 / The application will be set to topmost
# 软件路径在下方的 path 配置类别中指定
launch_app = "Ctrl+Win+Alt@A"

[path]
# 设置图片的自动保存位置,可选以下几种:
# Configure automatic save location for images, options:
# &         -> 截图时手动选定(默认)/ Manual selection when capturing (default)
# @         -> 桌面 / Desktop
# *         -> 图片文件夹 / Pictures folder
# D:/test   -> 其他指定文件夹(支持目录中含有中文及空格,路径必须存在)
#              Other specified folder (supports Chinese and spaces in path, must exist)
# ⚠️警告/Warning⚠️
# 路径必须使用斜杠『/』或双反斜杠『\\』
# Path must use slashes "/" or double backslashes "\\"
dir = "&"

# 需要启动的程序路径,要求同上
# Process path you want to launch
launch_app_path = "C:/Windows/System32/notepad.exe"
# 启动参数,可以置空
# 使用 Tab(打不出来可以复制这个<	>)间隔每个参数
# 如果启动参数中包含英文双引号『"』,请使用英文半角反斜杠进行转义,如『\"』
# Process Args, blank is allowed
# Use Tab to separate each argument (it may not be typed, you can copy this <	>)
# If the launch parameter contains double quotation marks for example <"test">, please use an half-width backslash to escape it, such as <\"text\">
launch_app_args = ""

[sundry]
# 设置是否开机自启
# Configure whether to start automatically at boot
# true->启用, false->禁用
startup = false

# 图像压缩与缩放比例
# Image compression and scaling ratio settings
# 压缩等级:0-10(清晰->模糊),-1代表默认
# 缩放:1%-100%,(模糊->清晰)
# Compression level: 0-10 (clear->blur), -1 for default
# Scale: 1%-100% (blur->clear)
comp_level  = -1
scale_ratio = 100

# 语言,中文为 1,英文为 0
# Language, Chinese is 1, English is 0
lang = 1

# 通知是否开启
# Whether notifications are enabled
# true->启用, false->禁用
notification = false

[gui]
# GUI配置,默认全部启用
# rect:方框
# ellipse:椭圆
# arrow:箭头
# number:标号
# line:直线
# text:文本
# mosaic:马赛克
# eraser:橡皮擦
# undo/redo:撤销/重做
# pin:钉图
# clipboard:保存到剪贴板
# save:保存
# close:关闭
gui_config = "rect,ellipse,arrow,number,line,text,mosaic,eraser,|,undo,redo,|,pin,clipboard,save,close"
# 参数只少不多
# Only fewer parameters are allowed
long_gui_config = "pin,clipboard,save,close"

我是用ahk启动这个软件,代替微信和qq的截图

就我所知, 这个软件3.8MB.

能算得上极其轻量的截图软件, 应该是 xsnip. 只有421kb, 支持快捷键,支持钉图.支持标注图片.

强大的截图

  • 窗口区域自动检测

  • 像素级的鼠标移动控制、截图范围控制

  • 取色器 (放大镜模式下 R, H)

  • 多屏支持

  • 高分屏支持

  • 全面Windows系统支持

  • 多种图片格式支持PNG, JPG, BMP

  • 丰富的画图工具

    • 矩形
    • 椭圆
    • 箭头
    • 铅笔
    • 文字
  • 高级标注工具

    • 马赛克
  • 撤销

这种 exe 文件体积比较没什么意义,一个 3.8MB 运行后占用 3.8MB 内存,或者一个 42KB 运行后占用 42MB,都有可能。
你列出的"强大的截图"是认真的?基础地不能再基础,连撤销都算了进来。而且好像是闭源的,更没吸引力。

话说 ScreenCapture 不是在文档里提供了使用 AutoHotkey 附加热键的方法了吗?你的方法比 AutoHotkey 更好用吗?

嗯, 我并不是想宣传 xsnip . 毕竟 pixpin 更香, 虽然尺寸会大很多.

只是没有get 到 ScreenCapture 的优势在哪?

ahk在涉及部分快捷键比如alt、win键时可能会“导致额外的击键”——但是我这玩意没有这个问题。(ahk问题的来源与说明见此:热键 - 定义 & 使用 | AutoHotkey v2

如果直接用ahk脚本,那必须得加个ahk程序;而如果包装为exe可执行文件,那又不是很方便通过配置文件等方式自定义按键

如果你给不懂电脑的朋友介绍screencaptue的使用,你需要先装ahk,再写ahk,再下载程序,还得教他怎么修改快捷键……

我这玩意直接集成了,省去了反复安装的功夫

开源。部分可能接触到保密的企业里面,如果是开源软件,申请完了层层审核以后还勉强能用,闭源软件想都别想

此外,您说的功能screencapture都有,但是本次我发帖的重点是sc_starter,是启动器,而非原程序。因此我只是说了启动器的优点,原程序有什么优点不在考虑范围内

更新至1.5版本,主要增加了防多开设置

更新至1.6版本,修正了一个潜在的bug

1.8.0已发布,大幅更新程序判断逻辑

更新1.9.0,更新了默认快捷键避免与Win11冲突以及注册快捷键失败时的动作

确实如此,但是有个小问题,不开源……有个同名的 xsnip 开源,但是我确认了一下,和你说的那个 http://xsnip.cn 不是一个软件,只是名字相同而已。

而我写这个软件最大的需求来源其实是开源来着……详情需求参照下文,而ScreenCapture确实是我能找到的最小且功能齐全的开源截屏软件了……

更新日志

  1. 更新了action的文件
  2. 更新了依赖
  3. 更换配置文件更改
    • 更换配置文件为ini格式
    • 更改了配置文件的读取办法
    • 配置文件缺失项自动补全(缺点不少,以后大概会改)
    • 配置文件缺失项自动调用默认配置
  4. 更新了readme
  5. 增加任务栏托盘
    • 增加了托盘图标
    • 托盘左键截图,右键退出,双击也是截图
  6. 程序拆分为多个模块,使其更易于维护
  7. 增加了自动以时间戳保存文件的选项,详情见配置文件
    (感谢 @xland 的命令行支持,毕竟我就是一个套壳的 ◐▽◑ )
  8. 增加了超多注释
  9. 现在程序可以自行设置自动启动与否
  10. 更新ScreenCapture.exe到v2.2.13
  11. 增加了一大堆错误处理逻辑
  12. 搞了搞多线程,虽然纯屎,但是好歹能跑
  13. 事件循环(EventLoop)也是屎
  14. 改了一堆结构和impl,现在输出的东西好看点了(还是纯屎)
  15. 依赖纯屎,得想办法再减少一些体积,下次可能会上个upx

2.8.2 增加了一堆设置,改进了软件逻辑

修复了之前msgbox失效的问题,现在直接调用了 MessageBoxExW 函数弹窗,timeout逻辑是自己实现的,但至少比之前用 mshta 调用 vbscriptjavascript 强多了,之前写转义写的头疼

  1. 再次改进msgbox
  2. 现在可以通过单独的Fn系列键作为快捷键
  3. 更新依赖
  1. 现在兼容了一大堆中文标点避免解析文件出错(含双引号、逗号、句号(点号)、短横线、冒号等)
  2. 改进了解析文件出错时的提示
  3. 改进了对特殊路径的支持情况,现在可以支持保存到WSL等奇葩路径中了

C721CC4DFDE3D7DE6E95DB838BCF949DDE07A55B8EBE5F65B1436E191ABD2792 *SC_Starter.exe

1 个赞

2.8.7 新增了托盘菜单,修复了一堆潜在问题

2.10.2

  1. 更新依赖
  2. 增加示例配置文件
  3. 解耦合,让execute更易懂,大大降低了理解成本与维护成本
  4. 重写 msgboxnotify_msgbox_standalone 函数,直接自建一个窗口用于弹窗提示,完美控制显示时间,win的通知系统太垃圾了实在
  5. 修正部分 debug 显示内容的格式