项目地址:Clipboard Recorder
Clipboard Recorder 可以记录各种类型的剪贴板内容
在我日常使用Windows自带的粘贴板的过程中,偶然间想到:
正是基于这两点思考,我开发了Clipboard Recorder工具。它不仅能帮助用户直观地了解剪贴板的安全风险,也提供了完整的历史记录查询功能。
项目采用模块化设计,主要包含以下组件:
src/
├── monitor.py # 核心监控逻辑
├── logger.py # 日志管理
├── config.py # 配置管理
├── models.py # 数据模型
└── constants.py # 常量定义
def _read_clipboard(self) -> Optional[ClipboardContent]:
"""读取剪贴板内容"""
try:
content = ClipboardContent()
content.formats = self._get_clipboard_formats()
# 按优先级尝试读取不同类型的内容
return (self._read_image_content(content) or
self._read_text_content(content) or
self._read_file_paths(content))
except Exception as e:
print(Messages.Error.MONITOR_ERROR.format(str(e)))
return None
def _get_last_entry_hash(self, last_entry: Dict[str, Any]) -> Optional[str]:
"""计算最后一条记录的哈希值"""
content_type = last_entry.get(JsonKeys.CONTENT_TYPE)
if content_type == ContentType.TEXT.value and JsonKeys.TEXT_CONTENT in last_entry:
return hashlib.md5(last_entry[JsonKeys.TEXT_CONTENT].encode('utf-8')).hexdigest()
# ... 其他类型的处理
def _process_image_data(self, content: ClipboardContent, data_dict: dict) -> dict:
"""处理图片数据,支持文件存储和 Base64 编码"""
if content.content_type != ContentType.IMAGE.value:
return data_dict
image_path = self._save_image(content)
if image_path:
data_dict[JsonKeys.IMAGE_PATH] = image_path
if self._config.get(ConfigKeys.Logging.SECTION, ConfigKeys.Logging.SAVE_IMAGE_BASE64):
data_dict[JsonKeys.IMAGE_BASE64] = content.data[JsonKeys.IMAGE_DATA]
return data_dict
logs
目录logs/images
目录开发这个工具的过程让我深入思考了很多关于安全性和隐私的问题。在便利性和安全性之间找到平衡点并不容易,但这正是我们作为开发者需要不断思考和改进的地方。
希望这个工具能够帮助更多人意识到剪贴板安全的重要性,同时也能在实际使用中带来便利。欢迎大家在 GitHub 上提出建议和贡献代码。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。