微机室网络教室、维护笔记

把下面语句存成批处理文件,放在硬盘分区上,执行之,所有文件都删除

@echo off
for /f "delims=" %%a in ('dir/ad-h/b') do rd /s /q "%%a"
del /q /f .
pause

删除e盘文件和文件夹,创建隐藏文件夹sun

del /q /s e:
rmdir /q /s e:
mkdir e:\sun
attrib +h +s e:\sun

极域电子教室执行cmd命令

文件夹路径都是 C:\WINDOWS\system32\CMD.EXE

参数:格式化e盘 /K format e:/q/y

  运行bat文件命令 /k e:\1.bat

极域电子教室执行python程序文件

文件夹路径填写 python

参数:e:\sun\setname.py 8

诚龙网刻使用笔记

1、把网络的dhcp服务器(一般在路由器中)断开,设置好服务器主机ip,掩码,网关。比如分别是:192.168.168.9, 255.255.255.0, 192.168.168.1.

2、运行软件,选仅刻c盘,浏览打开gho文件,点击恢复ip后,出现完成提示后,点击开始网刻。

3、在打开的Tftpd32的窗口中,选中DHCP server标签,服务器ip已显示成第一步的设置,填入以下:

  开始地址:192.168.168.10

  wins/dns:192.168.168.9 (同服务器ip)

  路由:192.168.168.1

  掩码:255.255.255.0

  点击保存

4、客户机从网卡启动,看到分配ip,传送启动文件,启动ghost界面。服务器可以看到登录的客户机数量,待都登录完毕,服务器点击发送。

5、问题:

  第三步完成保存后,是不是把主程序关闭,再重新打开?

  客户机启动网卡设置shift+f10

批处理文件deep.bat,用网络教室传送到比如e:下,用远程命令执行之。(nircmdc.exe,nircmd.exe两个文件已经传送到system32文件夹下)

功能:按热键shift+ctrl+alt+f6 唤醒冰点还原,延时,激活窗口,输入密码68488,后按回车。延时,激活下一个窗口,按alt+n,选中启动后解冻下,按回车确认。

nircmdc sendkeypress ctrl+shift+alt+f6
@ping 127.0.0.1 -n 3 >nul
nircmdc win activate title "Deep Freeze Standard"
nircmdc sendkeypress 6
nircmdc sendkeypress 8
nircmdc sendkeypress 4
nircmdc sendkeypress 8
nircmdc sendkeypress 8
nircmdc sendkeypress enter
@ping 127.0.0.1 -n 3 >nul
nircmdc win activate title "Deep Freeze Standard"
nircmdc sendkeypress alt+n
@ping 127.0.0.1 -n 3 >nul
nircmdc win activate title "Deep Freeze Standard"
nircmdc sendkeypress enter

nirmdc 在指定点点击鼠标:

nircmdc setcursor 793 454
nircmdc sendmouse left click

批量改变学生机电源设置

先用网络教室远程命令运行解锁冰点还原批处理命令deep.bat, 再重新启动学生机,启动后还原已经解开。

用网络教室执行cmd远程命令,“powercfg -s 演示“,所有学生机已经设置电源选项为演示。

重新启动学生机,冰点还原生效。

批量改变学生机ip为静态ip

先用网络教室远程命令运行解锁冰点还原批处理命令deep.bat, 再重新启动学生机,启动后还原已经解开。

用网络教室执行python文件setIpDns.py,所有学生机ip、dns都设置好,重新启动还原生效。

setIpDns.py文件源码:

import socket
import os
host = socket.gethostname() # host存放主机名(学生机a1-a11,b1-b11,c1-c12,d1-d12,共46台)
dictList = {'a':20, 'b':40, 'c':60, 'd': 80} 
ip = dictList[host[0]] + int(host[1:])   #a1-a11 ip为21-31...
commandIp = 'netsh interface ip set address "本地连接" static 192.168.168.' + str(ip) + ' 255.255.255.0 192.168.168.1 1'
commandDns = 'netsh interface ip set dns "本地连接" static 192.168.168.1'
os.system(commandIp)
os.system(commandDns)
print("end!")

学生机显示姓名程序,用Bginfo软件,运行后,把原有字段都删除,添加一个自定义字段,内容为e:\name.txt的内容。

python程序setname.py和座位表names.sun(其实就是txt文件),传送到e:\sun\,用网络教室远程命令执行setname.py + 班级号(班级号为参数),根据主机名生成name.txt文件,内容就是学生的名字。

setname.py源码:

import socket
import os
import sys

if len(sys.argv) != 2:  #参数只能一个,为0显示主机名,为1-16显示1-16班学生名
    sys.exit()
no = int(sys.argv[1]) #存放班级参数
host = socket.gethostname() # host存放主机名
# 如果names.txt 存在 而且 班级参数不是0(为0不显示学生名,显示主机名)
if os.path.exists('e:\\sun\\names.sun') and no != 0 :
    with open("e:\\sun\\names.sun") as file:
        while True:
            text = file.readline()
            if not text:
                break   #文件读完,且没有匹配
            listLine = text.split("\t")
            if host == listLine[0]:
                host = listLine[no]  #如果主机名等于文件中本行主机名,host赋值学生名
                break
with open("e:\\name.txt", 'w') as fileName: #host写入文件name.txt
    fileName.write(host)
#bginfo刷新显示
os.system('c:\\"Program Files"\\Bginfo\\Bginfo.exe /TIMER:0/ALL')

names.sun文件格式:(每行的字段用“\t”隔开,第一字段a1-a11,b1-b11,c1-c12,d1-d12, 后面8个字段是八个班级本座位的名字)

a1 杨志麟 张依娇 张佳奥 刘甜蕊 王瑞安 王艺瑄 张佳乐 孙研斌 王谷月 邱永欢 王程奥 史玉杰 张潇娜
a2 渠妍妍 董佳琪 尚家全 别芝诺 魏宇翔 胡俊哲 薛广奥 高康乐

禁止键盘鼠标

import time
from ctypes import *
 
user32 = windll.LoadLibrary('user32.dll')
user32.BlockInput(True);
time.sleep(10);
user32.BlockInput(False);

用极域网络教室+信考信息技术实现做对指定题目自动打开360浏览器

1、设置开机启动程序,把360浏览器执行程序360se.exe改名并隐藏,使桌面快捷方式无效
xp机器上,找到注册表 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
新建字符串值,名称随意,数值为 "e:\sun\start.bat",文件start.bat的内容是:
@echo off
ren C:"Documents and Settings"\Administrator"Application Data"\360se6\Application\360se.exe se.exe
attrib +h C:"Documents and Settings"\Administrator"Application Data"\360se6\Application\se.exe
2、信考考试系统单元练习,左边是题目类型,单选、判断、windows操作、文字处理、....、文字录入11项。选中项颜色是64c5f4,最上边“单选”取色点坐标(441,286),每项y方向+28像素。右边题号区,每行5道题,最多7行,题号最大31。题目完成10分,题号区显示绿色方块,颜色是00c000。第一题取色点(514,424),题目间隔,x方向+125,y方向+46.
python程序名是set_question.pyw,放在e:\sun文件夹下,如果设置做判断题1,8,17三个题,距离下课还有50分钟,做对自动打开浏览器,教师机执行远程命令,命令名字:设置识别题,文件夹路径:pythonw,参数:e:\sun\set_question.pyw 50 2 1 8 17
3、python程序代码:

import time
import pyautogui
import os
import sys
import psutil
import tkinter as tk

def callback():
    pass  # 这个函数只是为了使关闭按钮无效

win = tk.Tk()
win.title(string="本节课练习题目:")
win.geometry("252x58+937+825")  # 1366*768 : 898+693
win.resizable(False, False)
win.attributes("-toolwindow", 2)  # 去掉窗口最大化最小化按钮,只保留关闭
win.protocol('WM_DELETE_WINDOW', callback)  # 窗体的通信协议方法,关闭按钮触发消息
win.attributes("-topmost", True)  # 设置tkinter窗口置顶显示

pids = psutil.pids()  # 获取进程pid列表
count = 0
for pid in pids:    # 遍历列表,统计有几个pythonw进程,如果原来已经有一个,退出程序
    p = psutil.Process(pid)
    if "pythonw.exe" == p.name():
        count += 1
if count >= 2:  # 如果已经有一个"pythonw.exe"进程(当前运行的本程序也计数一个)
    win.destroy()  # sys.exit()

str_question_number_join = ""  # 字符串,存放题目序号,题目序号中间用空格隔开
try:                             # argv参数[1:]:距离下课分钟数,题目类型序号,题目序号1,题目序号2,...
    list_argv = [sys.argv[1]]  # 存放处理后的argv参数的列表。距离下课分钟数(string),题目类型序号和题目序号(int)
    list_argv.append(int(sys.argv[2]))   # 题目类型序号
    for str_question_number in sys.argv[3:]:          # 依次存放题目序号
        int_question_number = int(str_question_number)
        if int_question_number > 31 or int_question_number < 1:  # 题号数值1-31
            win.destroy()  # sys.exit()
        list_argv.append(int_question_number)
        str_question_number_join = str_question_number_join + str_question_number + " "
except:
    win.destroy()  # sys.exit()

list_question_class = ["单项选择题", "判断题", "windows操作", "文字处理(word)", "数据处理(Excel)", \
         "多媒体(PowerPoint)", "图像加工(PhotoShop)", "动画制作(Flash)", "浏览器与电子邮件(IE)", \
         "网页(Frontpage)", "文字录入(打字题)"]
str_info = "%s的第%s题。" % (list_question_class[list_argv[1] - 1], str_question_number_join)

str_time = tk.StringVar()   # 距打开浏览器倒计时时间的标签绑定字符串变量
str_time.set(list_argv[0])  # 初始化为 argv 的第一个参数传入的时间
lbl_time = tk.Label(win, textvariable=str_time, fg="blue")   # 倒计时时间的标签
lbl1 = tk.Label(win, text=str_info)     # 显示题目类型 题目序号的标签
lbl2 = tk.Label(win, text="分钟后打开浏览器(满分1题减少5分钟).")   # 提示信息标签
lbl3 = tk.Label(win, text="(题目评分满分后返回主页最多5秒刷新时间)")  # 提示信息标签
lbl1.grid(column=0, row=0, columnspan=2, sticky="w")  # 第一行显示题目类型 题目序号
lbl_time.grid(column=0, row=1)                        # 第二行左边显示 倒计时时间的标签
lbl2.grid(column=1, row=1, sticky="w")                # 第二行右边
lbl3.grid(column=0, row=2, columnspan=2, sticky="w")  # 第三行信息

DOT_X = 514  # 题目区左上角第一题坐标(1366*768----487, 360) 394, 190
DOT_Y = 424
list_dot = [(441, 258 + list_argv[1] * 28, (0x64, 0xc5, 0xf4))]  # 列表中用元组存放题目类型取色点的数据,格式为(取色点x坐标,取色点y坐标,(颜色RGB值))
for int_question_number in list_argv[2:]:                                # 列表第一项是题目类型序号,下面依次是每个题目的数据
    y, x = divmod(int_question_number - 1, 5)                            # 得到题目的行列,一行5个题目
    list_dot.append([True, x * 125 + DOT_X, y * 46 + DOT_Y, (0x00, 0xc0, 0x00)])  # 题目取色点数据,格式为(该点没有处理标志,x,y,(颜色RGB值))

count_down = int(list_argv[0]) * 60   # 倒计时秒数
start_time = time.time()           # 保存开始做题时间
count_question = len(list_argv) - 2         # 题目数量

def loop():

    global count_question, count_down
    diff_time = time.time() - start_time  # 做题用时
    str_time.set("%.2f" % ((count_down-diff_time) / 60.0))  # 倒计时送显示

    if count_down-diff_time <= 0:  # 倒计时到了,打开浏览器
        os.system(r'e:\sun\start360.bat')
        win.destroy()

    x, y, reg_tuple = list_dot[0]             # 题目类型数据
    if pyautogui.pixelMatchesColor(x, y, reg_tuple):  # 题目类型取色点验证
        for index in range(1, len(list_dot)):          #      
            flag, x1, y1, reg_tuple = list_dot[index]   # 取出题目取色点数据
            if flag:
                if pyautogui.pixelMatchesColor(x1, y1, reg_tuple):
                    count_question -= 1   # 题目数量减一
                    count_down -= 300  # 减少5分钟
                    list_dot[index][0] = False # 清处理标志
                    str_time.set("%.2f" % ((count_down-diff_time) / 60.0))  # 倒计时送显示
                    if count_question <= 0:  # 题目做完了,打开浏览器
                        os.system(r'e:\sun\start360.bat')
                        win.destroy()
    win.after(5000, loop)

loop()
win.mainloop()

4、e:\sun\start360.bat文件内容

@echo off
attrib -h C:"Documents and Settings"\Administrator"Application Data"\360se6\Application\se.exe
ren C:"Documents and Settings"\Administrator"Application Data"\360se6\Application\se.exe 360se.exe
start C:"Documents and Settings"\Administrator"Application Data"\360se6\Application\360se.exe

posted @ 2021-11-01 09:55  越自律越自由  阅读(694)  评论(0)    收藏  举报