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写个界面出来,然后再看看加一个短信通知的功能神马的,暂时把目标写在这里,希望不要烂尾吧.
dota监测的更多相关文章
- SignalR系列续集[系列8:SignalR的性能监测与服务器的负载测试]
目录 SignalR系列目录 前言 也是好久没写博客了,近期确实很忙,嗯..几个项目..头要炸..今天忙里偷闲.继续我们的小系列.. 先谢谢大家的支持.. 我们来聊聊SignalR的性能监测与服务器的 ...
- 基于SignalR实现B/S系统对windows服务运行状态的监测
通常来讲一个BS项目肯定不止单独的一个BS应用,可能涉及到很多后台服务来支持BS的运行,特别是针对耗时较长的某些任务来说,Windows服务肯定是必不可少的,我们还需要利用B/S与windows服务进 ...
- Consul-template的简单应用:配置中心,服务发现与健康监测
简介 Consul-template是Consul的一个方扩展工具,通过监听Consul中的数据可以动态修改一些配置文件,大家比较热衷于应用在Nginx,HAProxy上动态配置健康状态下的客户端反向 ...
- fir.im Weekly - APP 性能监测优化 二三事
每一个成功的 App,都拥有强大的性能体验.本期 fir.im Weekly 整理了微信读书.美团外卖. 天猫.美团点评技术团队的关于性能监测优化方面策略和工具的分享,一起来看看. 微信读书 iOS ...
- 服务发现与健康监测框架Consul-DNS转发的应用
关于Consul Consul是一个提供服务注册与发现,健康监测,Key/Value存储以及多数据中心存储的分布式框架.官网地址是https://www.consul.io/,公司初步应用后我们老大觉 ...
- Linux 性能监测:工具
一个完整运行的 Linux 系统包括很多子系统(介绍,CPU,Memory,IO,Network,-),监测和评估这些子系统是性能监测的一部分.我们往往需要宏观的看整个系统状态,也需要微观的看每个子系 ...
- apachetop 实时监测web服务器运行状况
apachetop 实时监测web服务器运行状况 我们经常会需要知道服务器的实时监测服务器的运行状况,比如哪些 URL 的访问量最大,服务器每秒的请求数,哪个搜索引擎正在抓取我们网站?面对这些问题 ...
- 使用 Arduino 和 LM35 温度传感器监测温度
上一篇玩儿了一下Arduino入门,这次再进一步,用一下LM35温度传感器来监测当前温度.LM35温度传感器已经在Arduino入门套件里包含了,就是那个有三个脚的小黑块儿. 我们先把这些东西连起来. ...
- 谈谈iOS app的线上性能监测
在移动端开发者中最重要的KPI应该是崩溃率.当崩溃率稳定下来后,工作的重心就应该转移到性能优化上.那么问题来了,如果你的项目也没有接入任何性能监测SDK,没有量化的指标来衡量,那你说你优化了性能领导信 ...
随机推荐
- BZOJ 1071 [SCOI2007]组队
1071: [SCOI2007]组队 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1330 Solved: 417[Submit][Status][ ...
- SQLCMD的用法,使用CMD 执行sql语句
SQLCMD的用法,使用CMD 执行sql语句 SQLCMD 允许在Windows命令窗中通过命令行提示符运行脚本. 语法如下: sqlcmd [ { { -U <login id> ...
- C字符数组及其应用
1.字符数组和其他数值类型的数组的定义引用和初始化都是相同的. 特别注意的是: 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串. \0'是由C编译系统自动加上的. 2. C语言允许 ...
- Java---网络编程(2)-UDP
UDP ☆ UDP 将数据及源和目的封装成数据包中,不需要建立连接 每个数据报的大小在限制在64k内 因无连接,是不可靠协议 不需要建立连接,速度快 DatagramSocket和DatagramPa ...
- 2012 A 《中国近现代史纲要》课程期末考试试卷
湖南人文科技学院2012—2013学年第1学期公共课 2011级<中国近现代史纲要>课程期末考试试卷 考核方式:(开卷) ...
- Chrome启动参数的配置问题的补充
一.当Chrome浏览器不支持本地AJAX请求时,会出现AJAX跨域问题,这时候我们就要配置相应的启动参数使得浏览器可以访问本地文件: 配置参数为:--allow-file-access-from-f ...
- Heavy Transportation
题目大意: 雨果的沉重运输是快乐的,当浮空运输出现故障时候他可以扩展业务, 但他需要一个聪明的人告诉他是否真的是一种把他的客户构建了巨型钢起重机的地方需要的所有街道都可以承受重量(这句是直接有道翻译的 ...
- Django教程:第一个Django应用程序(3)
Django教程:第一个Django应用程序(3) 2013-10-08 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 #博客: ...
- JQuery实现悬浮工具条
实现效果如下 html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...
- css倒三角的几种实现方式
在网页中,你在很多地方都能看到倒三角,比如tooltips,下拉菜单等.大家有几种方式来实现呢? 1.BASE64编码 图片 假如你已经有了三角形的图片,并且减少HTTP请求,那么将这个图片转换成一个 ...