零基础打造摸鱼工具:实现工作流自动化的实用教程
在快节奏的办公环境中,合理利用零碎时间提升个人效率,甚至偷偷处理私事(俗称摸鱼),已经成为现代职场人的隐藏技能。本文将从技术角度出发,手把手教你构建一个基于浏览器和快捷键的轻量级摸鱼工具。这套方案无需复杂的编程基础,只需跟着步骤操作,就能实现一键切换窗口、自动监控状态等实用功能,让工作流更丝滑,同时远离风险。
核心思路我们将使用纯前端技术,结合Chrome扩展和JavaScript脚本,打造一个不触碰公司敏感数据、仅提升个人操作效率的摸鱼助手。核心功能包括:自动隐藏特定标签页、定时切换窗口、以及模拟日常办公动作(如鼠标移动)。所有代码均可本地运行,无需联网。
准备工作你需要一台安装Chrome浏览器的电脑,以及一个文本编辑器(如记事本或VS Code)。无需管理员权限,所有操作都在用户目录下完成。
步骤1:创建Chrome扩展基础结构
首先,在桌面新建一个名为“摸鱼助手”的文件夹。在里面创建三个文件:manifest.json、popup.html 和 popup.js。manifest.json是扩展的身份证,定义了权限和入口。
{
"manifest_version": 3,
"name": "摸鱼助手",
"version": "1.0",
"permissions": ["tabs", "activeTab", "storage", "alarms"],
"action": {
"default_popup": "popup.html",
"default_icon": {
"16": "images/icon16.png",
"48": "images/icon48.png",
"128": "images/icon128.png"
}
},
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
]
}
如果你没有图标图片,可以跳过图标字段,或者用一张简单的16x16像素白底图代替。注意,manifest必须严格使用JSON格式,不要有多余逗号。
步骤2:实现快速切换窗口功能
在popup.html中,我们设计一个面板,包含一个切换按钮和一个“划水模式”开关。
<!DOCTYPE html>
<html>
<head>
<style>
body { width: 200px; padding: 10px; }
button { width: 100%; margin: 5px 0; }
</style>
</head>
<body>
<h3>摸鱼控制台</h3>
<button id="swapBtn">快速切换窗口</button>
<label>
<input type="checkbox" id="autoMode"> 自动划水模式
</label>
<p id="status">状态:空闲</p>
<script src="popup.js"></script>
</body>
</html>
popup.js 负责监听按钮点击,并调用chrome.tabs API。快速切换的思路是:在当前窗口和另一个可见窗口之间来回跳转。代码示例如下。
document.getElementById('swapBtn').addEventListener('click', () => {
chrome.windows.getAll({ populate: true }, (windows) => {
// 功能1:切换到上一个活动窗口
let activeWindowId = chrome.windows.WINDOW_ID_CURRENT;
for (let win of windows) {
if (win.focused) {
activeWindowId = win.id;
break;
}
}
// 找到非当前窗口且可见的
let targetWindow = windows.find(w => w.id !== activeWindowId && w.state === 'normal');
if (targetWindow) {
chrome.windows.update(targetWindow.id, { focused: true });
document.getElementById('status').innerText = '已切换';
} else {
document.getElementById('status').innerText = '没有其他窗口可切换';
}
});
});
注意:这个功能会自动将焦点切换到另一个窗口,比如从浏览器切换到Excel,适合你需要在老板经过时瞬移屏幕。
步骤3:定时模拟鼠标活动
为了不让电脑进入锁屏或屏保状态,我们需要在content.js中注入一个脚本,每隔30秒模拟一次鼠标移动。这个脚本会在所有页面上运行(因为manifest中设置了全局匹配)。
// content.js
function simulateMouseMove() {
const event = new MouseEvent('mousemove', {
clientX: Math.floor(Math.random() * window.innerWidth),
clientY: Math.floor(Math.random() * window.innerHeight)
});
document.dispatchEvent(event);
}
setInterval(simulateMouseMove, 30000);
但注意:如果页面是关闭的,脚本不会运行。为了更可靠的防锁屏,我们可以在background.js中实现定时唤醒。
步骤4:后台服务与自动模式
创建background.js文件,使用chrome.alarms API实现定时任务。当用户开启“自动划水模式”后,每60秒执行一次检查:如果当前窗口是浏览器且标签页标题包含“工作”关键词,则模拟点击一个空白区域(通过发送消息给content脚本)。
chrome.alarms.create('keepAlive', { periodInMinutes: 1 });
chrome.alarms.onAlarm.addListener((alarm) => {
if (alarm.name === 'keepAlive') {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
if (tabs.length > 0) {
chrome.tabs.sendMessage(tabs[0].id, { action: 'ping' }, (response) => {
// 无操作,只是防止自动休眠
});
}
});
}
});
// 监听popup中发送的状态变更
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.status === 'active') {
chrome.alarms.create('keepAlive', { periodInMinutes: 1 });
} else {
chrome.alarms.clear('keepAlive');
}
});
注意:content.js需要修改,以响应来自background的ping消息。
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.action === 'ping') {
simulateMouseMove(); // 复用之前的模拟函数
sendResponse({ result: 'pong' });
}
});
步骤5:加载与测试扩展
1. 在Chrome地址栏输入 chrome://extensions,打开开发者模式(右上角开关)。
2. 点击“加载已解压的扩展程序”,选择“摸鱼助手”文件夹。
3. 你会看到插件图标出现在工具栏,点击即可打开控制面板。
4. 测试快速切换:打开两个或多个窗口(如浏览器和记事本),点击按钮看窗口是否切换。
5. 测试自动模式:勾选“自动划水模式”,等待30秒后,检查是否触摸板或鼠标指针有小幅度移动。
进阶优化:添加随机性为了防止被异常检测软件识别为机械行为,我们可以在模拟鼠标移动时增加随机间隔和随机位置范围。例如,每45-75秒随机一次,移动距离限制在10像素内,更接近人类手抖。
function randomDelay(min=45000, max=75000) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
setTimeout(() => {
simulateMouseMove();
setTimeout(arguments.callee, randomDelay());
}, randomDelay());
安全提醒
使用此类工具时,请遵守公司IT政策。本教程仅供技术学习与个人效率优化。不建议在监控严格的金融、军工等环境下使用。记住,最好的摸鱼是合法合理地管理时间。
通过以上五个步骤,你已经拥有了一个功能紧凑的摸鱼工具核心。它可以帮你快速隐藏非工作内容,自动保持系统活跃。如果你对代码感兴趣,可以继续扩展功能,比如添加桌面提示小窗、一键最小化所有窗口等。技术是工具,善用者得自由。
