0%

製作偷懶時間計時器

 

本來想計算閒置時間 , 不小心又歪樓了 , 變成慣老闆專用的員工殺手級工具 , 混水摸魚盡在眼底阿 ~
主要核心參考自這個老外 感恩
他運用這個 win32 api 函數 GetLastInputInfo 可以計算出滑鼠不動以及鍵盤沒有敲擊的時間
關鍵的 code 我都寫在裡面有空在丟到 github 上 , 差不多就這樣~

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//目前的時間 (有點總數的味道)
int currentIdle = 0;

//最後一次的閒置時間
int lastIdle = 0;

//counter 供給每秒遞增判斷
int counter = 0;
private void Form1_Load( object sender, EventArgs e )
{
timerIdle.Interval = 1000;
timerIdle.Tick += TimerIdle_Tick;
timerIdle.Start();
}

private void TimerIdle_Tick( object sender, EventArgs e )
{
//每秒 counter 遞增供給非閒置時候進行判斷
counter++;

//假設超過 30 秒的話就算是耍廢
var sec = InputTimer.GetInputIdleTime().Seconds;
if (sec >= idle)
{
lastIdle = InputTimer.GetInputIdleTime().Seconds;
labelIdle.Text = $"你今日的耍廢時間 : {currentIdle + lastIdle} 秒";
}
else
{
//因為每秒都會計算 , 所以用個 counter 判斷秒數是否小於閒置時間
if (counter >= idle)
{
//回復操作了把最後一次的時間加上去
currentIdle = currentIdle + lastIdle;

//已經加過了所以設定為 0
lastIdle = 0;
counter = 0;
}
}
}
關閉