Momenteel probeer ik systeeminformatie te verzamelen in C# met WMI. Ik probeer een SystemConnection klasse te maken die het mogelijk maakt om gemakkelijk een connectie te leggen met me eigen computer of een netwerk computer. De connectie wil ik vervolgens laten terug komen in andere klassen (zoals CPU).
Het probleem zit in de volgende regel:
De connectie kan die in de ManClass niet maken omdat ik dit hoogstwaarschijnlijk verkeerd aanpak. Echter weet ik momenteel geen andere manier om dit aan te pakken en ik heb alleen maar voorbeelden gevonden met een eenvoudige connectie.
Volledige code:
Heeft iemand een idee of een beter voorbeeld? Of is dit wellicht niet mogelijk?
Het probleem zit in de volgende regel:
C#:
1
| ManagementClass ManClass = new ManagementClass(SysConn.ConnectionScope(), ManPath, null); |
De connectie kan die in de ManClass niet maken omdat ik dit hoogstwaarschijnlijk verkeerd aanpak. Echter weet ik momenteel geen andere manier om dit aan te pakken en ik heb alleen maar voorbeelden gevonden met een eenvoudige connectie.
Volledige code:
C#:
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
75
76
77
78
79
80
81
82
83
| using System; using System.Management; class SystemInfo { class SystemConnection { private string user = String.Empty; private string pass = String.Empty; private string machineName = String.Empty; public string MachineName { get { return machineName; } set { machineName = value; } } public void ConnectionScope() { ManagementScope MScope = new ManagementScope(); if (MachineName != Environment.MachineName) { ConnectionOptions options = new ConnectionOptions(); options.Username = user; options.Password = pass; MScope = new ManagementScope(@"\" + Environment.MachineName + @"\cimv2", options); } else { MScope = new ManagementScope(@"\root\cimv2"); } try { MScope.Connect(); } catch (Exception ErrorEx) { Console.WriteLine("An error has occured: " + ErrorEx); } } } class CPU { private string loadPercent = String.Empty; public string LoadPercent { get { return loadPercent; } set { loadPercent = value; } } private void Usage() { SystemConnection SysConn = new SystemConnection(); ManagementPath ManPath = new ManagementPath("Win32_Processor"); try { ManagementClass ManClass = new ManagementClass(SysConn.ConnectionScope(), ManPath, null); ManagementObjectCollection ManObjColl = ManClass.GetInstances(); foreach (ManagementObject ManObj in ManObjColl) { foreach (PropertyData PropData in ManObj.Properties) { if (PropData.Name == "LoadPercentage") LoadPercent = PropData.Value.ToString(); } } } catch (Exception ErrorEx) { Console.WriteLine("An error has occured: " + ErrorEx); } } } |
Heeft iemand een idee of een beter voorbeeld? Of is dit wellicht niet mogelijk?
Webdeveloping... -counts to 10- Sigh...