分类 挂机教程 下的文章

2022年江西省全员培训半自动化脚本

项目地址:http://html.study.teacheredu.cn/el/proj_21181/index.html
脚本功能:学习过程中不用弹窗确定

// ==UserScript==
// @name         江西edu
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        http://study.teacheredu.cn/proj/studentwork/study.htm?courseId=*
// @grant   unsafeWindow
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    // 延时3秒后进入未学课程
    window.sleep = function(ms){
        return new Promise(resolve => setTimeout(resolve, ms || 1000))
    };
    // 延时3秒后进入未学课程
    (async () => {
        console.info("一分钟后载入脚本...");
        await sleep(60*1000);
        console.info("尝试载入...");
        unsafeWindow.alert=function(msg) {console.info(msg);};
        window.alert=function(msg){console.info(msg);};
        console.info("载入成功!");
    })();

})();

脚本下载:
tampermonkey_scripts.zip

宁夏“智慧疫控普查”自动填表

功能说明:宁夏“智慧疫控普查”自动填表,手动输入验证码后提交即可。

一、准备工作

1.软件:按键精灵


按键精灵下载及安装

下载地址:http://download.myanjian.com/

点击下载安装即可


按键精灵导入代码

方式一:新建后将代码直接粘贴到源代码里。

方式二(推荐):将下载解压好的xxx.q直接拖到按键精灵中,点几次下一步完成即可。

2.PC端微信,且默认浏览器必须是微信自动浏览器


PC端微信浏览器打开页面

用手机端微信浏览器扫码打开填报页面,然后分享到PC端微信,用微信浏览器打开页面即可。

二、代码

运行代码一必须确保本地Excel能正常打开运行,代码一运行速度比代码二稍慢。

代码一


代码一(依赖本地Excel)

'Hwnd = Plugin.Window.Find(CefWebViewWnd, 0)
'Call Plugin.Window.Active(Hwnd)
Call Plugin.Office.OpenXls("C:\temp\套湾.xlsx")

Dim index, name, sex, id, phone,hz,dw,target

index = 0
For i = 2 To 500
    name = Plugin.Office.ReadXls(1, i, 2)
    target = Plugin.Office.ReadXls(1, i, 8)
    If name <> "" and target = "" Then 
        index = i
        Goto abc
    End If
Next
Call Plugin.Office.CloseXls()

rem abc
name = Plugin.Office.ReadXls(1, index, 2)
sex = Plugin.Office.ReadXls(1, index, 3)
id = Plugin.Office.ReadXls(1, index, 4)
phone = Plugin.Office.ReadXls(1, index, 5)
hz = Plugin.Office.ReadXls(1, index, 6)
dw = Plugin.Office.ReadXls(1, index, 7)

Call Plugin.Office.WriteXls(1, index, 8, "是")
'两次Tab切换到市
KeyPress "Tab", 2
Delay 200
'4次 Down选中中卫市
KeyPress "Down", 4
Delay 500
'Tab切换到县区
KeyPress "Tab", 1
Delay 200
'3次Down选中海原县
KeyPress "Down", 3
Delay 500
'Tab切换到乡镇
KeyPress "Tab", 1
Delay 200
'3次Down选中西安镇
KeyPress "Down", 4
Delay 500
'Tab切换到村组
KeyPress "Tab", 1
Delay 200
'3次Down选中小河村
KeyPress "Down", 4
Delay 500
'输入村组
KeyPress "Tab", 1
Delay 200
SayString "套湾"
Delay 500
'Tab切换到楼号
KeyPress "Tab", 1
Delay 200
SayString hz & "家"
Delay 500
'Tab切换人员类别
KeyPress "Tab", 1
Delay 200
'8次Down选中H
KeyPress "Down", 8
Delay 200
'Tab切换到姓名
KeyPress "Tab", 1
Delay 200
SayString name
Delay 500
'Tab切换到性别  默认男,如果是女在Down一次
KeyPress "Tab", 1
Delay 200
If sex = "女" Then 
    KeyPress "Down", 1
    Delay 500
End If
'Tab切换到身份证号
KeyPress "Tab", 1
Delay 200
SayString id
Delay 500
'Tab切换到户籍地址
KeyPress "Tab", 1
Delay 200
SayString "海原县西安镇小河行政村套湾" & hz & "家"
Delay 500
'Tab切换到 本人本市内存在无人居住的空置房  默认否
KeyPress "Tab", 1
Delay 200
'Tab切换到 手机号
KeyPress "Tab", 1
Delay 200
SayString phone
Delay 200
'Tab切换到 工作单位
KeyPress "Tab", 1
Delay 200
SayString dw
Delay 200
'6次Tab切换到 目前健康状况,默认健康
KeyPress "Tab", 6
Delay 200
'Tab切换到 1月17日以来与A\B\C\D四类人员有密切接触:
KeyPress "Tab", 1
Delay 200
KeyPress "Down", 1
Delay 200
'Tab切换到 是否与确诊或疑似病例有密切接触
KeyPress "Tab", 1
Delay 200
KeyPress "Down", 1
Delay 200
'Tab切换到 是否隔离
KeyPress "Tab", 1
Delay 200
KeyPress "Down", 1
Delay 200
Call Plugin.Office.CloseXls()
Call Plugin.Msg.Tips("脚本运行结束")

代码二


代码二(不依赖其他软件,速度更快)

'读取上次位置信息
LogFL = Plugin.File.OpenFile("C:\temp\log.txt")
Call Plugin.File.SeekFile(LogFL,0)
ps = Plugin.File.ReadLine(LogFL)
If ps = "" Then 
    ps = 0
End If
Call Plugin.File.SeekFile(LogFL,0)
Call Plugin.File.WriteLine(LogFL,ps+1)
Call Plugin.File.CloseFile(LogFL)
'根据位置信息读取数据
FL = Plugin.File.OpenFile("C:\temp\套湾.csv")
text = Plugin.File.ReadLine(FL)
For i = 0 To ps
    text = Plugin.File.ReadLine(FL)
Next
Call Plugin.File.CloseFile(FL)
'填表单
sp = split(text, ",")
name = sp(1)
sex = sp(2)
id = sp(3)
phone = sp(4)
hz = sp(5)
dw = sp(6)
'两次Tab切换到市
KeyPress "Tab", 2
Delay 200
'4次 Down选中中卫市
KeyPress "Down", 4
Delay 500
'Tab切换到县区
KeyPress "Tab", 1
Delay 200
'3次Down选中海原县
KeyPress "Down", 3
Delay 500
'Tab切换到乡镇
KeyPress "Tab", 1
Delay 200
'3次Down选中西安镇
KeyPress "Down", 4
Delay 500
'Tab切换到村组
KeyPress "Tab", 1
Delay 200
'3次Down选中小河村
KeyPress "Down", 4
Delay 500
'输入村组
KeyPress "Tab", 1
Delay 200
SayString "套湾"
Delay 500
'Tab切换到楼号
KeyPress "Tab", 1
Delay 200
SayString hz
Delay 500
'Tab切换人员类别
KeyPress "Tab", 1
Delay 200
'8次Down选中H
KeyPress "Down", 8
Delay 200
'Tab切换到姓名
KeyPress "Tab", 1
Delay 200
SayString name
Delay 500
'Tab切换到性别  默认男,如果是女在Down一次
KeyPress "Tab", 1
Delay 200
If sex = "女" Then 
    KeyPress "Down", 1
    Delay 500
End If
'Tab切换到身份证号
KeyPress "Tab", 1
Delay 200
SayString id
Delay 500
'Tab切换到户籍地址
KeyPress "Tab", 1
Delay 200
SayString "海原县西安镇小河行政村" & hz & "家"
Delay 500
'Tab切换到 本人本市内存在无人居住的空置房  默认否
KeyPress "Tab", 1
Delay 200
'Tab切换到 手机号
KeyPress "Tab", 1
Delay 200
SayString phone
Delay 200
'Tab切换到 工作单位
KeyPress "Tab", 1
Delay 200
SayString dw
Delay 200
'6次Tab切换到 目前健康状况,默认健康
KeyPress "Tab", 6
Delay 200
'Tab切换到 1月17日以来与A\B\C\D四类人员有密切接触:
KeyPress "Tab", 1
Delay 200
KeyPress "Down", 1
Delay 200
'Tab切换到 是否与确诊或疑似病例有密切接触
KeyPress "Tab", 1
Delay 200
KeyPress "Down", 1
Delay 200
'Tab切换到 是否隔离
KeyPress "Tab", 1
Delay 200
KeyPress "Down", 1
Delay 200
Call Plugin.Office.CloseXls()
Call Plugin.Msg.Tips("脚本运行结束")

三、资源准备

1.制作Excel数据

每一列的位置不能变,H列是否上报,制作时空着即可。

提取性别公式=IF(MOD(MID(D2,17,1),2)=0,"女","男")提取后复制再粘贴为值

![](http://www.herokay.cn/usr/uploads/2020/02/1786846554.png)

2.Excel转csv格式(代码一不用这一步操作)

点击另存为,保存为csv格式即可,警告信息不用管确定即可

![](http://www.herokay.cn/usr/uploads/2020/02/1489017096.png)

3.修改代码

每个人所处的市、县、区不一定相同,根据需要修改相应代码。

如何确定Tab后面次数要改为多少?

鼠标点一下上一个输入框,然后按一下Tab键,然后按键盘上向下的箭头,次能出现你需要的值就改为几次

代码一和代码二基本一致,这地方以代码二为例修改

![](http://www.herokay.cn/usr/uploads/2020/02/3050141479.png)

如果你两个代码都导入了,工作是指能选中一个运行,按键精灵默认按F10运行代码。

[代码.zip](http://www.herokay.cn/usr/uploads/2020/02/2603048172.zip)

Tampermonkey挂机脚本常用代码片段

每隔十几分钟弹出一个对话框

情况一、alert弹窗

window.alert=function(msg){console.info(msg);};

情况二、模态对话框

//临汾市2019——2020年度中小学幼儿园教师全员培训项目 可用
//http://px.yanxiu.com/2019sx_6041/index.html
function myGJ()
{
    var display =$('.clock-tip').css('display'); 
    if(display != 'none')
    {
        $('.clock-tip').click();
    }
}

setInterval(myGJ, 5000);

失去焦点后停止计时

window.onblur=null;

10分钟不操作停止计时

//使用网站 http://tn201964013.stu.teacher.com.cn
setInterval('countss=0;', 8*60*1000);

通过MutationObserver监控代码修改触发相应代码

//选择一个需要观察的节点
var targetNode = document.getElementById('some-id');

// 设置observer的配置选项
var config = { attributes: true, childList: true, subtree: true };

// 当节点发生变化时的需要执行的函数
var callback = function(mutationsList, observer) {
    for(var mutation of mutationsList) {
        if (mutation.type == 'childList') {
            console.log('A child node has been added or removed.');
        }
        else if (mutation.type == 'attributes') {
            console.log('The ' + mutation.attributeName + ' attribute was modified.');
        }
    }
};

// 创建一个observer示例与回调函数相关联
var observer = new MutationObserver(callback);

//使用配置文件对目标节点进行观测
observer.observe(targetNode, config);

// 停止观测
observer.disconnect();

具体使用时可以简化

//选择一个需要观察的节点
var targetNode = document.getElementById('zwwx');

// 设置observer的配置选项
var config = { attributes: true };

// 当节点发生变化时的需要执行的函数
var callback = function(mutationsList, observer) {
    console.info(targetNode.style.display);
};

// 创建一个observer示例与回调函数相关联
var observer = new MutationObserver(callback);

//使用配置文件对目标节点进行观测
observer.observe(targetNode, config);

// 停止观测
observer.disconnect();