2014-10-20 103 views
0

动机:我沉迷于特定的在线游戏。在Windows中对软件执行时间施加每日限制

目标:编写一个程序,该程序将对此特定游戏的播放时间施加每日限制。

背景:我从来没有为Windows编写代码。

我的想法:Windows肯定有一些用于管理软件权限的API。我需要编写一个运行在后台的程序,并定期检查游戏是否被播放。如果是 - 总和每日总时间,并在超出限制时使用Windows API来阻止游戏。也许甚至有可能注册一个在游戏开始时会被通知的侦听器,这样就不需要定期轮询游戏状态。

问题

  1. 请帮我确定这样的程序和点的全球拱到可能感兴趣的Windows API的部分。

  2. 我是否有任何潜在的缺陷需要注意?

  3. 我应该使用哪种编程语言(我可以使用它们中的任何一种或Windows API仅限于某些语言)?

我知道有很多程序可以做我所需要的,但我真的想自己写这个程序。

谢谢。

+0

这是行不通的。当你想要更多的时候,你只需禁用你的程序。但是,你的问题太广泛了。基本上你说,“我对Windows编程一无所知,我该如何编写这个复杂的应用程序?” – 2014-10-20 19:56:53

回答

1

听起来像PowerShell的工作。由于它是Microsoft的任务自动化和配置管理框架,由.NET Framework上构建的命令行shell和相关脚本语言组成。管理用户权限也很容易。

通过Task Scheduler你将能够建立这样的守护进程,

在后台运行,并定期检查游戏是否播放

简单的工作流程,可以这样实现的:

  • 使用PowerShell ISE创建和保存my_script.ps1
  • 添加此my_script。PS1作为计划任务
  • 当时间超过给予警告弹出(这样可以节省你的游戏)
  • 继续运行的后台程序查杀PID相关游戏

有关脚本设计:

#Parameter Set: Name 
Get-Process [[-Name] <String[]> ] [-ComputerName <String[]> ] [-FileVersionInfo] [-Module] [ <CommonParameters>] 

你可以see how here。然后

$file = Get-Content my_time_file.utf8 

将保留每日时间限制的历史记录。如何readwrite文件。应用一些解析和条件逻辑。 当时间已经过去 - 给一个warning pop-up和终止PID(比方说5分钟):

[System.Windows.Forms.MessageBox]::Show("You are about the exceed the daily time limit. Please save your game. Game process will be terminated in 5 minutes!") 

但毕竟它给你。很多时候,人们谁是

沉迷于特定的网络游戏

是非常机智。

相关问题