-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathForm1.cs
68 lines (63 loc) · 2.29 KB
/
Form1.cs
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Management;
using System.Threading;
using System.Text.RegularExpressions;
namespace IiPUlab3._2_battery_
{
public partial class BatteryInfo : Form
{
Thread myThread;
Battery battery;
public BatteryInfo()
{
InitializeComponent();
battery = new Battery();
myThread = new Thread(getBatteryStatus);
myThread.Start();
}
public void getBatteryStatus()
{
var prePowerLineStatus = battery.GetPowerStatus();
while (true)
{
PowerLineStatus.Invoke(new Action(() =>
{
PowerLineStatus.Text = battery.GetPowerLineStatus();
if ((battery.GetPowerStatus() == "Online") && (prePowerLineStatus == "Offline"))
{
prePowerLineStatus = "Online";
battery.SetDisplayBlackout(battery.GetDefaultScreenTime());
}
}
));
BatteryLifePercent.Invoke(new Action(() => BatteryLifePercent.Text = (battery.GetBatteryLifePercent() * 100).ToString() + '%'));
BatteryLifeRemaining.Invoke(new Action(() =>
{
if (battery.GetBatteryLifeReamaining() != -1) BatteryLifeRemaining.Text = (battery.GetBatteryLifeReamaining() / 60).ToString() + " min.";
else BatteryLifeRemaining.Text = "∞";
}
));
}
}
private void BlackoutTimeComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
battery.SetDisplayBlackout(Int32.Parse(BlackoutTimeComboBox.SelectedItem.ToString()));
}
private void Battery_FormClosing(object sender, FormClosingEventArgs e)
{
myThread.Abort();
battery.SetDisplayBlackout(battery.GetDefaultScreenTime());
}
private void BatteryInfo_Load(object sender, EventArgs e)
{
}
}
}