dota监测

漫漫长假一个人无聊得很,整日DOTA,打的腰酸背痛腿抽筋的.就想着写一个脚本记录自己每天打游戏的时间,于是就产生了下面的这个东西...

运行环境:win7 32位.

python版本:3.4.1

由于用到了一些win32api,这些并非python标准库自带的,所以你需要先去下载pywin32模块.去http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/找到对应你的系统及python版本的包,一路next安装即可.

#coding=gbk
import win32com.client
import time
import os

def IsExsit(processName):
    WMI = win32com.client.GetObject(‘winmgmts:‘)
    processCodeCov = WMI.ExecQuery(
        ‘select * from Win32_Process where Name="%s"‘ % processName)
    if len(processCodeCov) > 0:
        return 1
    else:
        return 0

oldStatus = 0
newStatus = 0   #0代表进程不存在.1代表存在
totalTime = 0

def ShutDown(fp):
    cmd = "cmd.exe /k shutdown -s -t 0"
    structTime = time.localtime(time.time())
    currentTime = time.strftime(‘%Y-%m-%d %H:%M:%S‘, structTime)
    info = "关机:" + currentTime + "\n"
    fp.write(info)
    os.system(cmd)

def Handle(processName,fp):
    global oldStatus, newStatus,totalTime
    newStatus = IsExsit(processName)
    structTime = time.localtime(time.time())
    currentTime = time.strftime(‘%Y-%m-%d %H:%M:%S‘, structTime)
    print(oldStatus, newStatus,currentTime)

    #更新进程运行总时间.
    if newStatus == 1:
        totalTime += 60
        if totalTime >= 60*60*3:      #超过3小时则关机
            ShutDown(fp)

    #在进程状态改变时记录到文件中
    if (oldStatus != newStatus):
        oldStatus = newStatus
        structTime = time.localtime(time.time())
        strTime = time.strftime(‘%Y-%m-%d %H:%M:%S‘, structTime)
        if newStatus:
            strTmp = processName + "开启"
        else:
            strTmp = processName + "关闭"
        info = strTime + "********" + strTmp + "\n"
        fp.write(info)
        #fp.close()
    else:                              #
        pass

if __name__ == ‘__main__‘:
    fp = open("records.txt", "a+")
    structTime = time.localtime(time.time())
    currentTime = time.strftime(‘%Y-%m-%d %H:%M:%S‘, structTime)
    info = "开始监控:" + currentTime + "\n"
    fp.write(info)
    while True:
        Handle(‘war3.exe‘,fp)
        #5分钟检测一次
        time.sleep(60)

程序很简单,隔一段时间监测一下war3.exe进程在不在,在进程状态有改变时记录到一个文本中,举个例子,你8:00的时候把脚本运行起来了,然后9:00你开始玩dota一直到9:30.那么程序在9:00附近监测的时候发现war3.exe从无到有了,那么就会记录下来写到recorder.txt中,9:30附近监测到war3.exe从有到无,也会写到文本中.在脚本运行的过程中,发现war3.exe在运行的话就会开始总时间的统计,当超过3小时,就会执行一个关机命令(好几把dota打的正爽的时候关机了。。。。。。)

目前脚本做的还不是很完善,比如没有去捕获在cmd命令行中键入ctrl+z产生的信号,也没有把监测的进程名称,间隔时间什么的做到配置文件里去,其实做起来也不复杂,就是人比较懒,不想去弄了....

后续的话考虑用tkinter写个界面出来,然后再看看加一个短信通知的功能神马的,暂时把目标写在这里,希望不要烂尾吧.

时间: 2024-12-11 06:09:23

dota监测的相关文章

linux性能监测与优化

top命令 命令功能 top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息 的监测系统性能和运行信息的实用工具. 命令语法 top(选项) 选项说明 -b:以批处理模式操作; -d:屏幕刷新间隔时间. uptime 命令功能 uptime命令能够打印系统总共运行了多长时间和系统的平均负载. 命令语法 uptime(选项) 选项说明 -v:显示指令的版本信息. free命令 命令功能 free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内 核使用的内存缓冲区. 命令

利用百度API画多边形,不能监测到百度绘图鼠标事件

var drawingManager = new BMapLib.DrawingManager(map, { isOpen: false, //是否开启绘制模式 enableDrawingTool: true, //是否显示工具栏 drawingToolOptions: { anchor: BMAP_ANCHOR_TOP_RIGHT, //位置 offset: new BMap.Size(5, 5), //偏离值 scale: 0.8, //工具栏缩放比例 //工具栏显示数据 drawingMo

Linux下用C实现Ping监测与HTTP报文上传

有一个数据中心监测项目,命名为CPing,它的主要原理通过WEB进行前台统一配置管理,后台定期对数据中心相关设备执行Ping操作,并将结果及时写入到数据库. 该项目基于Linux平台部署,前端开发语言采用PHP,后台开发语言采用C,由于考量到项目的部署简洁性,后台开发的守护进程尽量不直接操作数据库,而是将需要写入的数据以HTTP的形式发送给PHP的WEB页面,由PHP完成写入操作.这样的好处是后台守护进程部署时不需要配置相关数据库接入环境. 下面给出一段后台代码,作用是执行Ping操作,并将结果

Dota 游戏中的攻击与伤害分析

摘要:在上一篇文章中分析了物理攻击和护甲的攻防分析,但是忽略了英雄对战里面一个很重要的角色--技能攻击.实际上,除了少数后期英雄可以直接靠平砍(即物理攻击)杀人外,大部分英雄尤其是智力英雄还是要靠技能收割人头的.技能的使用也是评价一个玩家水平高低的主要指标.在本文中,我们就技能进行分析. 关键字:技能攻击 魔抗 护甲 伤害类型 攻击类型 Dota中的攻击类型共有普通攻击.穿刺攻击.攻城攻击.混乱攻击.英雄攻击和法术攻击6种.除了法术攻击,其他的统称为物理攻击.然而我们只考虑英雄的话,只有英雄攻击

系统监测和性能分析工具

作为一名linux运维工程师来说,对linux系统的日常管理,检测和系统性能的分析是必不可少的.也有一些针对系统监测和性能分析的工具.咱们现在就来了解一下. tcpdump命令: 网络抓包工具,过滤数据包或者定制输出格式: 常用选项: -n :  用IP地址表示主机,用数字表示端口号. -i  : 监听网卡接口, -i  any :   抓取所有网卡接口的数据包. -v  :  输出详细信息. -t :  不打印时间戳 -e :  显示以太网帧头部信息. -x  :  以十六进制数显示数据包的内

Redis监测(Redis Monitoring)

庞数据 开发了Redis 服务器实时监测 APP 啦(Redis Monitoring). 你想知道,你服务器的性能状态吗?想知道运营时有什么异常吗?庞数据给您提供实时监测服务. 可在Redis服务器上监测到,Key增加状态,内存使用率(CPU),数据逐出(Evictions )命令处理总数,延迟时间(Latency),内存碎片率(Fragmentation Ratio) 等等··· 这样的数据是非常重要的. Redis 监测(Monitor) 是 ,通过庞数据Cloud(https://pan

[转]JVM系列五:JVM监测&工具[整理中]

原文地址:http://www.cnblogs.com/redcreen/archive/2011/05/09/2040977.html 前几篇篇文章介绍了介绍了JVM的参数设置并给出了一些生产环境的JVM参数配置参考方案.正如之前文章中提到的JVM参数的设置需要根据应用的特性来进行设置,每个参数的设置都需要对JVM进行长时间的监测,并不断进行调整才能找到最佳设置方案.本文将介绍如果通过工具及Java api来监测JVM的运行状态,并详细介绍各工具的使用方法. 需要监测的数据:(内存使用情况 谁

linux的网络监测工具

linux的性能网络监测工具(iostat/sar/mpstat)需要安装sysstat这个包. 工具一.iftop(查看网络带宽情,(必须从epel源安装) 1)  iftop需要的依赖包如下: flex byacc  libpcap ncurses ncurses-devel libpcap-devel 2) 下面是维基百科上的描述: iftop monitors to network traffic(网络流量) and displays a table of current bandwid

广告效果监测

广告效果监测 广告效果监测是指通过付费广告,客户点击进入网站接下来的一系列活动 广告投放前.投放中.投放后的效果实施监测和评估,并不是个孤立的过程,需要把监测到数据进行一个整理,并建立一个系统的数据库,不仅会对本次广告进行一 个系统的评估,同时它的评估结果将会被录入到历史投放效果中,对下次的广告投放起到一个很好的借鉴和参考,并对今后企业广告往更好的方向发展起到了一个很 好引领作用. 广告投放后的分析就可以对广告效果做一个全面的评估,我们可以从投放后的 分析中可以了解到本次广告投放的ROI怎样.本