2014-10-20 111 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!") 

但畢竟它給你。很多時候,人們誰是

沉迷於特定的網絡遊戲

是非常機智。

相關問題