一个 Windows 小工具:框选屏幕任意区域截图,自动复制到剪贴板,可另存为 PNG。 不需要安装任何运行库,单个 EXE 双击即用。
本仓库只放源码,不含编译好的 EXE(
.gitignore已排除)。想直接运行请按下面「构建」一节自己编译, 或者到 Releases 页面下载现成的ScreenShot.exe(GitHub 的 Release 附件名不支持非 ASCII 字符,所以附件用英文名,下载后重命名成屏幕截图.exe一样用)。
- 双击
dist\屏幕截图.exe(或从快捷方式启动,避免被 SmartScreen 拦一次)。 - 点击「框选屏幕并截图」,或按
Ctrl+Alt+S。 - 按住鼠标左键拖动,框选要截取的区域,松开鼠标完成截图。
按
Esc或点鼠标右键可以取消。 - 截图会自动复制到剪贴板,可直接粘贴到微信、Word 等软件。 主界面的「截图后自动复制」可以关掉这个行为。
- 点「保存图片」存成 PNG。程序会依次尝试:桌面 →
%USERPROFILE%\屏幕截图→%LOCALAPPDATA%\屏幕截图→ 临时目录 → 程序目录截图\,选出第一个可写的位置;状态栏显示完整保存路径,点一下状态栏就能打开所在文件夹。
详细说明见 dist/使用说明.txt。
- C# / .NET Framework 4.8 / WinForms
- 只用 Windows 自带的
csc.exe编译,不需要 Visual Studio,也不需要 .NET SDK - 全屏框选遮罩与橡皮筋选区是自绘的无边框窗口,交互与「屏幕识字」共用同一套组件
- 截图走 GDI+
CopyFromScreen,框选范围会被钳制在屏幕内 - 保存路径采用可写性回退链:桌面 →
%USERPROFILE%\屏幕截图→%LOCALAPPDATA%\屏幕截图→ 临时目录 → 程序目录截图\;文件名形如截图_20261023_164612.png RegisterHotKey注册全局热键,被其他软件占用时会降级提示,不影响按钮截图- 单实例运行(
Local\ScreenShotTool.SingleInstance互斥体),二次启动会激活已有窗口 - 顶层异常兜底:
Application.ThreadException+AppDomain.UnhandledException都转成对话框,不白屏崩溃 app.manifest声明 Per-Monitor V2 DPI,普通权限运行(不要求管理员)
主要文件:
| 文件 | 作用 |
|---|---|
src/MainForm.cs |
主窗口、全局热键、截图、预览、复制与保存 |
src/SelectionForm.cs |
全屏框选遮罩 |
src/Theme.cs |
颜色、字体与圆角绘制 |
src/Program.cs |
入口、单实例、异常兜底 |
src/app.manifest |
Per-Monitor V2 DPI、普通权限 |
build/IconGen.cs |
生成 app.ico 的小工具(图标已生成好,平时用不到) |
需要 Windows 自带的 .NET Framework 4.x 编译器(%WINDIR%\Microsoft.NET\Framework64\v4.0.30319\csc.exe):
powershell -NoProfile -ExecutionPolicy Bypass -File .\build.ps1输出:dist\屏幕截图.exe。
- 仅限 Windows(依赖 WinForms、GDI+ 与
user32.dll)。 - 全局热键
Ctrl+Alt+S与其他软件冲突时不会生效,此时点按钮即可。 - 在多显示器、尤其是各屏 DPI 不同的环境下,框选坐标可能有偏差。
- 屏幕识字 —— 同一套框选交互,框完之后改用 Windows 自带的
Windows.Media.Ocr识别文字。
所有截图只保存在本机,不会上传到任何服务器。
MIT License,© 2026 maxchoel。详见 LICENSE。