- 全局钩子注入:控制器进程通过
SetWindowsHookEx(WH_GETMESSAGE)将HookDll.dll注入到所有桌面进程。 - API 拦截:
HookDll使用 MinHook 对GetClipboardData与OleGetClipboard进行 inline hook。 - 审批协商:目标进程触发剪贴板读取时,
HookDll通过命名管道将请求发送给控制器,控制器弹出审批窗口。 - 决策回传:用户选择允许或拒绝后,结果通过管道回传,
HookDll据此放行或阻止此次调用。
- 任意进程读取剪贴板时实时弹窗审批
- 进程图标与路径展示,便于识别来源
- 白名单 / 黑名单管理,可手动添加或从历史中选取
- "记住我的选择",对同一进程自动应用上次决策
- 系统托盘常驻,支持显示/隐藏主窗口、启停注入、快速退出
- 浅色 / 深色 / 跟随系统主题切换
- Windows 10/11 (x64)
- .NET 9 Desktop Runtime
- Visual Studio 2022(含 C++ 桌面开发工具,用于构建 native DLL)
git clone https://github.com/LeonspaceX/Clipboard-Access-Ctrl
cd Clipboard-Access-Ctrl
# 构建 native 钩子 DLL(x64 + x86)
powershell -ExecutionPolicy Bypass -File scripts/Build-Native.ps1 -Configuration Debug
# 构建托管主程序
dotnet build src/ClipboardAccessControl.App/ClipboardAccessControl.App.csproj -c Debug构建产物位于 src/ClipboardAccessControl.App/bin/Debug/net9.0-windows/,native DLLs 会自动复制到其下的 native/x64 与 native/x86 子目录。
在 Releases 页面下载压缩包,解压后运行 ClipboardAccessControl.exe 即可。
src/
ClipboardAccessControl.App/ 托管主程序(WPF)
App.xaml / App.xaml.cs 应用入口与全局资源
MainWindow.xaml 主界面(日志与启停按钮)
ApprovalWindow.xaml 剪贴板审批弹窗
SettingsWindow.xaml 设置页(白/黑名单、主题)
HookStopProgressWindow.xaml 停止注入时的进度窗口
Protocol/ IPC 协议定义
Services/ 审批协调、管道服务、托盘、设置等
Win32/ P/Invoke 声明
ClipboardAccessControl.NativeHook/ Native 钩子与宿主(C++)
HookDll.cpp 注入到目标进程的钩子 DLL
HookHost.cpp 控制器侧的注入宿主
NativeProtocol.h 共享协议头
scripts/
Build-Native.ps1 Native 构建脚本(调用 MSVC)
assets/ README 截图
GNU General Public License v3.0 (GPLv3)
Copyright (C) 2026 Leonxie

