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,没有量化的指标来衡量,那你说你优化了性能领导信 ...
随机推荐
- 【贪心】【模拟】HDU 5491 The Next (2015 ACM/ICPC Asia Regional Hefei Online)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5491 题目大意: 一个数D(0<=D<231),求比D大的第一个满足:二进制下1个个数在 ...
- HDOJ(HDU) 2115 I Love This Game(排序排序、、、)
Problem Description Do you like playing basketball ? If you are , you may know the NBA Skills Challe ...
- ARES
ARES规划是恒生公用技术平台规划,以敏捷Agility.重用性Reused.扩展性Extend.简单性Simple为核心特性与价值取向,规划涉及ARES Server运行支撑平台.ARES Stud ...
- 关于lucene的IndexSearcher单实例,对于索引的实时搜索
Lucene版本:3.0 一般情况下,lucene的IndexSearcher都要写成单实例,因为每次创建IndexSearcher对象的时候,它都需要把索引文件加载进来,如果访问量比较大,而索引也比 ...
- 分布式系统状态下redis存储asp.net session使用第三方Providers驱动
https://github.com/ServiceStack/ServiceStack.Redis (redis客户端组件) 注:redis服务端在windows不太稳定,一般部署在Linux下. ...
- linux常用命令 http://mirrors.163.com/ubuntu-releases/12.04/
由于记忆力有限,把平时常用的Linux命令整理出来,以便随时查阅: linux 基本命令 ls (list 显示当前目录下文件和目录 ls -l 详细显示 =ll ) [root@linux ...
- php导出excel不断刷新缓冲区的思路(转)
require('./db.class.php');$DB = new db();$DB->connect();//数据库链接 header("Content-Type: text/c ...
- python 学习笔记 copy
浅copy >>> a=[1,2,3,[4,5,6]]>>> a[1, 2, 3, [4, 5, 6]]>>> a[3].append(7)> ...
- linux 下 apt命令集详解
apt命令用法 packagename指代为软件包的名称 apt-get update 在修改/etc/apt/sources.list或/etc/apt/preferences之後运行该命令.此外您 ...
- 解除网页右键限制和开启网页编辑状态的js代码
当访问页面右键被限制了怎么办?很好办!将以下代码添加进收藏夹,点击执行即可: javascript:alert(document.onselectstart = document.onbeforeco ...