此脚本是配合公司产品来写的,思路可以借鉴,也可以做修改后,实现类似功能。
` str_check_file = "d:\check";
//判断助手是否在线
function isonline()
{
b_is_online = lva.is_online();
//io.println(b_is_online);
// io.println("======");
if(b_is_online)
{
return true;
}
//io.println(b_is_online);
return false;
}
function has_mon_file ()
{
//判断电脑是否存在D盘
if(file.is_exist("d:\"))
{
//判断是否存在标志文件
if(file.is_exist("d:\\check"))
{
//如果存在返回0,啥都不干
return 0;
}
//不存在标志文件,则创建标志文件
i_ret = file.touch("d:\\check");
if(i_ret != 0)
{ //上报执行braise策略失败结果
lva.report("","电脑创建检查文件失败");
return 1;
}
else
{
process.shell("attrib +h +s d:\\check");
}
}
else
{
//上报执行braise策略失败结果
lva.report("","此电脑没有D盘")
return 1;
}
return 0;
}
//延时1分钟关机
function shudown()
{ //延时1分钟,给1分钟时间连接后台,如果1分钟内没有连接后台则执行关机操作
//检查是否在线的延时,在检查是否在线时增加,这里不管
thread.sleep(60000);
process.shell("shutdown -s -t 0");
}
function check_mon_file ()
{
//如果助手上线,删除创建的监控文件
if(isonline())
{
//io.println("======");
if(file.delete("d:\\check"))
{
return 0;
}
else
{
lva.report("","删除标志文件失败");
}
}
//如果助手不在线,首先检查是否存在标志文件,存在标志文件,则获取创建日期
if(file.is_exist("d:\\check"))
{
//因为braise缺陷,获取文件创建时间,只能多写几行了
res = file.search("D:\\check",false);
for(i = 0; i < res.size(); i++)
{
//获取文件创建时的unix时间戳
i_file_create = res[i].t_create;
//io.println(i_file_create);
}
//当前的时间戳,是个整数,从1970年开始的一个,我们不用管
i_now = time.now_int();
//计算出文件创建到现在的描述
i_cycle = i_now - i_file_create;
//用创建文件过去的描述除以7天的描述,这里下面的可以自己更改下,我不做参数了哈
//7天时间的描述暂且这么算吧 totals = 7*24*3600=604800
//io.println(i_cycle-604800);
if(i_cycle - 604800 >0)
{
io.println("========");
for(i=0;i<1000000;i++)
{ //如果超7天没有连接到后台,则右下角一直显示下面的提示,不支持for(true),100万次算了
lva.pop_msg("您的电脑已经一周时间没有接入公司网络了,请及时接入公司网络!");
//如果想不让他的电脑正常使用,可以选择自动关机,或者不停给弹msgbox都可以
//下面是自动关机的,如果需要就把shutdown前面的注释去掉
//shutdown();
}
}
}
}
function main ()
{
//先延时2分钟,让电脑完全开机,且有时间正常连接到服务器
thread.sleep(120000);
//判断下是否有标志文件
i_ret = has_mon_file ();
// io.println("======")
// io.println(i_ret);
if(i_ret == 0)
{
//如果has_mon_file ()返回0,说明存在或创建标志文件成功;然后检查标志文件。
i_ret_del_file = check_mon_file();
if(i_ret_del_file == 0)
{
//如果助手在线,标志文件删除,返回0,结束程序
//io.println("删除文件")
return 0;
}
}
}
//从这里开始执行
main();`