如何确保孩子在允许(不受限制地)使用电脑之前完成在线课程?

如何确保孩子在允许(不受限制地)使用电脑之前完成在线课程?

我希望我的孩子完成此网站的在线课程:http://www.typingweb.com/然后才允许他使用电脑(具体来说:玩 Minecraft!)。

有什么办法可以做到这一点?

我运行的是 Windows 7 Ultimate。如果需要,可以安装(或创建)特殊浏览器版本、用户帐户等。

答案1

我最终编写了以下代码,以教师身份登录并提取一份报告,该报告显示您的学生今天花费了多少秒。 在我的情况下,我刚刚创建了我的教师帐户和儿子的学生帐户,我只是检查他是否花费了 5 分钟或更长时间。 下面的 Groovy 脚本会在我儿子的帐户上执行(使用 .BAT 包装器),如果他没有完成所需的 5 分钟,就会注销。

@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.2')
import groovyx.net.http.*
import static groovyx.net.http.ContentType.URLENC

import javax.xml.ws.handler.Handler
import javax.xml.ws.http.HTTPBinding

def http = new HTTPBuilder("https://www.typingweb.com")

http.post( path: '/portal/index/login', body: [email: '[email protected]', password: 'yourpasswordhere'],
        requestContentType: URLENC ) { resp, reader ->

    println "response status: ${resp.statusLine}"
    println 'Headers: -----------'
    resp.headers.each { h ->
        println " ${h.name} : ${h.value}"
    }
    println 'Response data: -----'
    System.out << reader
    println '\n--------------------'
}

def today = new Date().format( 'yyyy-MM-dd' )

println today


http.post( path: "/portal/reports/run/export/1/date/${today}/dateRange/today/endDate//startDate//gaGroupID/all/report/exercises/format/csv"
        ) { resp, reader ->

    println "response status: ${resp.statusLine}"
    println 'Headers: -----------'
    resp.headers.each { h ->
        println " ${h.name} : ${h.value}"
    }
    println 'Response data: -----'
    def lastLine
    reader.eachLine{ line ->
        lastLine = line
    }

    println lastLine

    def seconds = lastLine.split(',')[4].replaceAll('"', '')
    println seconds

    if ( seconds.isNumber() && (seconds.toInteger() >= 300) ) {
        println "Quitting WITHOUT logging off"
        System.exit(0);
    }

    def proc = """msg * "Tienes que hacer 5 minutos de escribir a maquina" """.execute()
    proc.waitFor()
    println "Logging off..."
    """logoff""".execute()
}

相关内容