dsh-web-speech-input
leozou320-ai
Voice-to-text for the DeepSeek Harness Web UI — live, editable, never auto-sends. | DeepSeek Harness 网页语音输入
PROJECT TOPICS
PROJECT README
一个轻量级的 Windows 窗口置顶工具:按一下快捷键,把当前窗口"钉"在最前面;再按一下取消。纯 Python 标准库 + Win32 API 实现,无任何运行时依赖,打包为单个 exe 即可使用。
F8 置顶/取消当前活动窗口,可自定义任意组合键(如 Ctrl+Alt+P、F9 等)WinPin.config.json窗口置顶工具.exe(或 dist\WinPin.exe),程序驻留系统托盘F8(默认)→ 窗口边框变橙色并显示"已置顶"提示,此后它始终显示在其他窗口之上F8(或点击托盘图标)取消置顶提示:无法置顶的窗口(桌面、任务栏、系统弹窗等)会自动被过滤并给出提示。
WinPin_debug.log,或 %TEMP%\WinPin.log(文件资源管理器地址栏输入 %TEMP% 回车即可打开该目录)。WinPin_debug.exe(诊断版,带黑色控制台窗口),控制台会逐行显示启动过程;若闪退,把控制台截图或日志文件内容发回即可定位问题。another instance detected:说明托盘区已有一个实例在运行,本次是正常退出而非崩溃(右键托盘图标→退出后再启动)。窗口置顶工具_便携版\WinPin.exe(文件夹形式,被误杀概率更低)。需要 Python 3.8+(本机开发环境为 3.14),仅需安装 PyInstaller:
powershell -ExecutionPolicy Bypass -File build.ps1
脚本会自动:安装 PyInstaller 到 vendor\ → 生成图标 → 打包为单文件 exe。
产物:dist\WinPin.exe,并复制一份为 窗口置顶工具.exe。
诊断版构建(带控制台、可看到全部运行日志):
$env:PYTHONPATH = "vendor"
python -m PyInstaller --noconfirm --onefile --console --name WinPin_debug `
--icon "src\winpin\assets\app.ico" --add-data "src\winpin\assets;winpin\assets" `
--version-file "version_info.txt" "src\launcher.py"
src\winpin\
app.py 主程序(托盘/热键/置顶逻辑/消息循环)
wintools.py 纯 ctypes Win32 API 封装
overlay.py 分层窗口渲染(置顶边框/提示标签/十字光标)
trayicon.py 托盘图标与右键菜单
hotkey.py 热键格式化与录制
settings.py 设置窗口(tkinter)
config.py 配置读写
diag.py 诊断日志与崩溃捕获(闪退排查用)
assets\ 程序图标与托盘图标(tools\gen_icons.py 生成)
tools\
gen_icons.py 图标生成器(纯 Python 输出 .ico)
verify_render.py 渲染结果自动校验
simulate_interaction.py 托盘点击/热键交互模拟测试
preview.py 渲染 PNG 预览
自检运行:python src\launcher.py --selftest(会自动注册热键、创建托盘图标与示例边框后退出)。
SetWindowPos(HWND_TOPMOST) 实现;边框/标签为 WS_EX_LAYERED | WS_EX_TRANSPARENT | WS_EX_NOACTIVATE 分层窗口(鼠标穿透、不抢焦点),用 UpdateLayeredWindow 逐像素渲染RegisterHotKey(带 MOD_NOREPEAT),托盘用 Shell_NotifyIconW(GUID 注册失败时自动回退传统 uID 方式,资源管理器重启后自动恢复)MIT License © 2026 L-mimimi
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。