|
1 | | -# KeyView - 键盘使用历史记录查看工具 |
| 1 | +# KeyView |
2 | 2 |
|
3 | | -基于 Wails v3.0.0-alpha.51 + Vue3 + github.com/wangle201210/keylogger + SQLite3 实现的键盘使用历史记录查看工具。 |
| 3 | +<div align="center"> |
4 | 4 |
|
5 | | -## 功能特性 |
| 5 | +**键盘使用历史记录查看工具** |
6 | 6 |
|
7 | | -- 🔤 **实时键盘监听** - 记录所有键盘按键事件 |
8 | | -- 💾 **SQLite 数据存储** - 持久化存储键盘历史记录 |
9 | | -- 🔍 **强大的筛选功能** - 按按键名称、日期、动作类型筛选 |
10 | | -- 📊 **统计分析** - 显���总记录数、今日按键次数等统计信息 |
11 | | -- 🎨 **现代化 UI** - 基于 Vue3 构建的渐变风格界面 |
12 | | -- ⚡ **高性能** - 支持分页显示,流畅浏览大量记录 |
| 7 | +基于 Wails v3 + Vue3 + SQLite3 构建的现代化键盘按键记录与分析工具 |
13 | 8 |
|
14 | | -## 技术栈 |
| 9 | +[](https://golang.org/) |
| 10 | +[](https://vuejs.org/) |
| 11 | +[](LICENSE) |
| 12 | + |
| 13 | +</div> |
| 14 | + |
| 15 | +## ✨ 功能特性 |
| 16 | + |
| 17 | +- **🔤 实时键盘监听** - 自动记录所有键盘按键事件 |
| 18 | +- **💾 SQLite 数据存储** - 持久化存储,轻量高效 |
| 19 | +- **🔍 强大筛选功能** - 按按键名称、日期、动作类型灵活筛选 |
| 20 | +- **📊 数据统计分析** - 实时显示总记录数、今日按键次数 |
| 21 | +- **🎨 现代化 UI** - 基于 Vue3 + Element Plus 的美观界面 |
| 22 | +- **⚡ 高性能** - 分页显示,流畅处理大量数据 |
| 23 | + |
| 24 | +## 📸 应用截图 |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | +## 🛠️ 技术栈 |
15 | 29 |
|
16 | 30 | ### 后端 |
17 | | -- **Go 1.24+** - 主要编程语言 |
| 31 | +- **Go 1.24+** - 核心编程语言 |
18 | 32 | - **Wails v3.0.0-alpha.51** - 桌面应用框架 |
19 | | -- **github.com/wangle201210/keylogger** - 键盘事件监听库 |
| 33 | +- **github.com/wangle201210/keylogger** - 键盘事件监听 |
20 | 34 | - **GORM + SQLite3** - 数据库 ORM |
21 | 35 |
|
22 | 36 | ### 前端 |
23 | 37 | - **Vue 3** - 渐进式 JavaScript 框架 |
24 | | -- **Vite** - 快速的前端构建工具 |
25 | | - |
26 | | -## 项目结构 |
27 | | - |
28 | | -``` |
29 | | -keyview/ |
30 | | -├── main.go # 应用入口 |
31 | | -├── internal/ |
32 | | -│ └── app/ |
33 | | -│ └── service.go # 后端服务实现 |
34 | | -├── frontend/ # Vue3 前端 |
35 | | -│ ├── src/ |
36 | | -│ │ ├── App.vue # 主应用组件 |
37 | | -│ │ ├── main.js # 前端入口 |
38 | | -│ │ ├── style.css # 全局样式 |
39 | | -│ │ └── services/ |
40 | | -│ │ └── wails.js # Wails API 封装 |
41 | | -│ ├── index.html |
42 | | -│ ├── package.json |
43 | | -│ └── vite.config.js |
44 | | -├── go.mod |
45 | | -├── go.sum |
46 | | -├── Makefile |
47 | | -└── README.md |
48 | | -``` |
| 38 | +- **Element Plus** - Vue 3 UI 组件库 |
| 39 | +- **Vite** - 快速构建工具 |
49 | 40 |
|
50 | | -## 安装与运行 |
| 41 | +## 📦 安装与运行 |
51 | 42 |
|
52 | 43 | ### 前置要求 |
53 | 44 |
|
54 | 45 | - Go 1.24 或更高版本 |
55 | 46 | - Node.js 18+ 和 npm |
56 | | -- macOS (目前仅支持 macOS 平台) |
57 | | -- Xcode 命令行工具 (用于编译 C 代码) |
| 47 | +- macOS 系统 |
| 48 | +- Xcode 命令行工具 |
58 | 49 |
|
59 | | -### 安装依赖 |
| 50 | +### 快速开始 |
60 | 51 |
|
61 | | -1. 克隆项目(包括 keylogger 子模块): |
| 52 | +1. **克隆项目** |
62 | 53 | ```bash |
63 | 54 | git clone --recurse-submodules <repository-url> |
64 | 55 | cd keyview |
65 | 56 | ``` |
66 | 57 |
|
67 | | -2. 安装前端依赖: |
| 58 | +2. **安装依赖** |
68 | 59 | ```bash |
| 60 | +# 安装前端依赖 |
69 | 61 | make frontend-install |
70 | | -# 或 |
71 | | -cd frontend && npm install |
72 | | -``` |
73 | 62 |
|
74 | | -3. 下载 Go 依赖: |
75 | | -```bash |
| 63 | +# 安装 Go 依赖 |
76 | 64 | go mod tidy |
77 | 65 | ``` |
78 | 66 |
|
79 | | -### 运行应用 |
80 | | - |
81 | | -#### 方式一:使用 Makefile |
82 | | - |
| 67 | +3. **运行应用** |
83 | 68 | ```bash |
84 | | -# 构建前端并运行应用 |
85 | 69 | make run |
86 | | - |
87 | | -# 或者分步执行 |
88 | | -make frontend-build # 构建前端 |
89 | | -make build # 构建应用 |
90 | | -./keyview # 运行 |
91 | | -``` |
92 | | - |
93 | | -#### 方式二:手动执行 |
94 | | - |
95 | | -```bash |
96 | | -# 1. 构建前端 |
97 | | -cd frontend |
98 | | -npm run build |
99 | | -cd .. |
100 | | - |
101 | | -# 2. 构建并运行应用 |
102 | | -go build -o keyview |
103 | | -./keyview |
104 | 70 | ``` |
105 | 71 |
|
106 | 72 | ### 开发模式 |
107 | 73 |
|
108 | | -仅开发前端(热重载): |
109 | 74 | ```bash |
110 | | -cd frontend |
111 | | -npm run dev |
| 75 | +# 开发前端(支持热重载) |
| 76 | +cd frontend && npm run dev |
| 77 | + |
| 78 | +# 完整开发模式 |
| 79 | +make dev |
112 | 80 | ``` |
113 | 81 |
|
114 | | -前端开发服务器将在 `http://localhost:5173` 启动。 |
| 82 | +## 📖 使用说明 |
115 | 83 |
|
116 | | -## 使用说明 |
| 84 | +### 基本操作 |
117 | 85 |
|
118 | | -1. **启动应用** - 运行应用后会自动打开窗口 |
119 | | -2. **开始记录** - 点击"开始记录"按钮开始监听键盘事件 |
120 | | -3. **查看记录** - 所有按键事件会实时显示在列表中 |
121 | | -4. **筛选数据** - 使用顶部筛选栏按条件过滤记录 |
122 | | -5. **停止记录** - 点击"停止记录"按钮暂停监听 |
| 86 | +1. **启动应用** - 运行后自动打开主窗口 |
| 87 | +2. **开始记录** - 点击"开始记录"按钮监听键盘事件 |
| 88 | +3. **查看数据** - 实时查看按键历史记录 |
| 89 | +4. **筛选记录** - 使用筛选器查找特定记录 |
| 90 | +5. **停止记录** - 点击"停止记录"暂停监听 |
123 | 91 |
|
124 | 92 | ### 筛选功能 |
125 | 93 |
|
126 | | -- **按键筛选** - 选择特定的按键名称查看其历史记录 |
127 | | -- **日期筛选** - 按日期查看特定日期的记录 |
128 | | -- **动作筛选** - 选择"按下"或"释放"查看特定动作 |
| 94 | +- **按键筛选** - 选择特定按键查看其历史 |
| 95 | +- **日期筛选** - 按日期查看记录 |
| 96 | +- **动作筛选** - 筛选"按下"或"释放"事件 |
129 | 97 |
|
130 | | -### 数据统计 |
| 98 | +### 统计信息 |
131 | 99 |
|
132 | | -- **总记录数** - 数据库中存储的总记录数量 |
133 | | -- **今日按键** - 今天按下的按键次数(仅计算按下事件) |
| 100 | +- **总记录数** - 数据库中的总记录数量 |
| 101 | +- **今日按键** - 今日按键次数(仅统计按下事件) |
134 | 102 |
|
135 | | -## 隐私说明 |
| 103 | +## 📂 项目结构 |
136 | 104 |
|
137 | | -⚠️ **重要提示**: |
138 | | -- 本工具仅用于个人使用统计和分析目的 |
139 | | -- 键盘记录数据存储在本地 SQLite 数据库中 |
140 | | -- 请勿将此工具用于恶意目的或未经授权的监控 |
141 | | -- 建议定期清理旧的记录数据 |
| 105 | +``` |
| 106 | +keyview/ |
| 107 | +├── main.go # 应用入口 |
| 108 | +├── internal/ |
| 109 | +│ └── app/ |
| 110 | +│ └── service.go # 后端服务 |
| 111 | +├── frontend/ # Vue3 前端 |
| 112 | +│ ├── src/ |
| 113 | +│ │ ├── App.vue # 主组件 |
| 114 | +│ │ ├── main.js # 前端入口 |
| 115 | +│ │ └── services/ # API 服务 |
| 116 | +│ └── package.json |
| 117 | +├── image/ # 截图和资源 |
| 118 | +├── go.mod |
| 119 | +├── Makefile |
| 120 | +└── README.md |
| 121 | +``` |
142 | 122 |
|
143 | | -## 数据存储位置 |
| 123 | +## 🔒 隐私与安全 |
144 | 124 |
|
145 | | -数据库文件默认存储在应用运行目录下的 `keyview.db` 文件中。 |
| 125 | +⚠️ **重要提示** |
146 | 126 |
|
147 | | -## 权限要求 |
| 127 | +- 本工具仅供个人使用统计和分析 |
| 128 | +- 所有数据存储在本地 SQLite 数据库 |
| 129 | +- 请勿用于未经授权的监控 |
| 130 | +- 建议定期清理历史数据 |
| 131 | + |
| 132 | +### 数据存储位置 |
| 133 | + |
| 134 | +数据库文件:`keyview.db`(应用运行目录) |
| 135 | + |
| 136 | +### macOS 权限设置 |
| 137 | + |
| 138 | +键盘监听需要辅助功能权限: |
148 | 139 |
|
149 | | -在 macOS 上运行键盘监听需要辅助功能权限: |
150 | 140 | 1. 打开"系统设置" > "隐私与安全性" > "辅助功能" |
151 | | -2. 添加 `keyview` 应用到允许列表 |
| 141 | +2. 添加 KeyView 到允许列表 |
152 | 142 | 3. 重启应用 |
153 | 143 |
|
154 | | -## 故障排除 |
| 144 | +## 🔧 常见问题 |
155 | 145 |
|
156 | 146 | ### 构建失败 |
157 | 147 |
|
158 | | -如果遇到 CGO 相关错误,确保已安装 Xcode 命令行工具: |
| 148 | +安装 Xcode 命令行工具: |
159 | 149 | ```bash |
160 | 150 | xcode-select --install |
161 | 151 | ``` |
162 | 152 |
|
163 | | -### 权限被拒绝 |
| 153 | +### 权限问题 |
164 | 154 |
|
165 | | -如果在启动时遇到权限错误,请按照上述步骤授予辅助功能权限。 |
| 155 | +按上述步骤授予辅助功能权限 |
166 | 156 |
|
167 | | -### 前端无法加载 |
| 157 | +### 前端未构建 |
168 | 158 |
|
169 | | -确保前端已经构建: |
170 | 159 | ```bash |
171 | 160 | cd frontend && npm run build |
172 | 161 | ``` |
173 | 162 |
|
174 | | -## 开发 |
175 | | - |
176 | | -### 代码格式化 |
| 163 | +## 📝 Make 命令 |
177 | 164 |
|
178 | 165 | ```bash |
179 | | -make fmt |
| 166 | +make run # 运行应用 |
| 167 | +make build # 构建应用 |
| 168 | +make clean # 清理构建文件 |
| 169 | +make fmt # 格式化代码 |
| 170 | +make frontend-build # 构建前端 |
| 171 | +make frontend-install # 安装前端依赖 |
180 | 172 | ``` |
181 | 173 |
|
182 | | -### 清理构建文件 |
| 174 | +## 🤝 贡献 |
183 | 175 |
|
184 | | -```bash |
185 | | -make clean |
186 | | -``` |
187 | | - |
188 | | -## 许可证 |
189 | | - |
190 | | -请参考项目的 LICENSE 文件。 |
| 176 | +欢迎提交 Issue 和 Pull Request! |
191 | 177 |
|
192 | | -## 贡献 |
| 178 | +## 📄 许可证 |
193 | 179 |
|
194 | | -欢迎提交 Issue 和 Pull Request! |
| 180 | +本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 |
195 | 181 |
|
196 | | -## 致谢 |
| 182 | +## 🙏 致谢 |
197 | 183 |
|
198 | 184 | - [Wails](https://wails.io/) - 优秀的 Go 桌面应用框架 |
199 | 185 | - [Vue.js](https://vuejs.org/) - 渐进式 JavaScript 框架 |
| 186 | +- [Element Plus](https://element-plus.org/) - 优秀的 Vue 3 组件库 |
200 | 187 | - [GORM](https://gorm.io/) - Go 的 ORM 库 |
| 188 | + |
| 189 | +--- |
| 190 | + |
| 191 | +<div align="center"> |
| 192 | +Made with ❤️ by KeyView Team |
| 193 | +</div> |
0 commit comments