Bonjour à toutes et tous,
J'essaie de me faire un petit programme pour détecter en boucle un éventuel changement d'état de l'alimentation (pc portable ou tablette Windows) mais sans succès...
Après de nombreuses recherches sur internet je me permet de poster ici pour essayer d'avancer sur un bout de code mais étant débutant je n'ai rien trouvé de concret.
Voici mon code actuel que j'ai mis dans l'évenement Form_Load car ne sachant pour ou le placer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
69
70
71
72
73
74 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim psBattery As PowerStatus = SystemInformation.PowerStatus Dim perFull As Single = psBattery.PowerLineStatus Dim sps As BatteryStatus.SYSTEM_POWER_STATUS = BatteryStatus.GetStatus lbl_AC.Text = String.Concat("Power AC : ", [Enum].GetName(GetType(BatteryStatus.ACLineStatus), sps.ACLineStatus)) Select Case sps.ACLineStatus Case 0 lbl_etatalim.Text = "Statut de l'alimentation : Débranchée du secteur " & vbCrLf & "Niveau de la batterie :" & perFull * 100 & "%" Case 1 lbl_etatalim.Text = "Statut de l'alimentation : Branchée sur secteur " & vbCrLf & "Niveau de la batterie :" & perFull * 100 & "%" Case 255 lbl_etatalim.Text = "Statut de l'alimentation : Inconnu" End Select Select Case sps.BatteryFlag Case 1 'La batterie est haute" Case 2 '"La batterie est basse" Case 4 '"La batterie est critique" Case 8 '"La batterie est en charge" Case 128 '"Statut batterie : Aucune batterie de secours") Case 255 '("Battery charge status: Unknown Status") End Select End Sub End Class Public Class BatteryStatus Private Declare Auto Function GetSystemPowerStatus Lib "kernel32.dll" ( _ ByRef lpSystemPowerStatus As SYSTEM_POWER_STATUS) _ As Integer Public Structure SYSTEM_POWER_STATUS Public ACLineStatus As ACLineStatus Public BatteryFlag As BatteryFlag Public BatteryLifePercent As Byte Public Reserved1 As Byte Public BatteryLifeTime As Integer Public BatteryFullLifeTime As Integer End Structure Public Enum BatteryFlag As Byte High = 1 Low = 2 Critical = 4 Charging = 8 NoSystemBattery = 128 Unknown = 255 End Enum Public Enum ACLineStatus As Byte Offline = 0 Online = 1 Unknown = 255 End Enum Public Shared Function GetStatus() As SYSTEM_POWER_STATUS Dim SPS As New SYSTEM_POWER_STATUS GetSystemPowerStatus(SPS) Return SPS End Function End Class
Dans quel événement placer ce code ? faut-il utiliser un Timer pour créer une boucle ?
Est-ce qu'une personne aurai un exemple concret pour m'aider ?
Vous remerciant par avance,
Très cordialement,
Partager