动机:我沉迷于特定的在线游戏。
目标:编写一个程序,对每个特定游戏的播放时间设置每日限制。
背景:我从未编写过Windows代码。
我的想法:Windows当然有一些用于管理软件权限的API。我需要编写一个在后台运行的程序,并定期检查游戏是否已播放。如果是 - 将每日总时间相加并使用Windows API在超出限制时阻止游戏。也许甚至可以注册一个在游戏启动时会收到通知的监听器,这样就不需要定期轮询游戏状态。
问题:
请帮我定义此类程序的全局范围,并指出可能感兴趣的Windows API部分。
我是否有任何潜在的陷阱需要注意?
我应该使用哪种编程语言(我可以使用它们中的任何一种,或者Windows API仅限于某些语言)?
我知道有很多程序可以满足我的需求,但我真的想自己写这个程序。
感谢。
答案 0 :(得分:1)
听起来像PowerShell的工作。因为它是Microsoft的任务自动化和配置管理框架,包括命令行shell和构建在.NET Framework上的相关脚本语言。此外,管理用户权限也很容易。
通过Task Scheduler你可以创建这样的守护进程
在后台运行并定期检查游戏是否已播放
简单的工作流程可以像这样实现:
对于脚本设计:
#Parameter Set: Name
Get-Process [[-Name] <String[]> ] [-ComputerName <String[]> ] [-FileVersionInfo] [-Module] [ <CommonParameters>]
你可以see how here。然后
$file = Get-Content my_time_file.utf8
将保留每日时间限制的历史记录。如何read和write个文件。 Aplly一些解析和条件逻辑。 当时间结束时 - 给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!")
但毕竟它取决于你。
的人经常是沉迷于特定的在线游戏
非常足智多谋。