@@ -28,26 +28,70 @@ internal async static Task<JObject> GetJObjectFromFileAsync(IFile file)
28
28
29
29
static string GetDeviceIdImpl ( )
30
30
{
31
- ManagementObjectSearcher mos = new ManagementObjectSearcher ( "SELECT * FROM Win32_BaseBoard" ) ;
32
- ManagementObjectCollection moc = mos . Get ( ) ;
33
- string mbId = String . Empty ;
31
+ var mbId = GetSerialNumber ( ) ;
32
+ var procId = GetProcId ( ) ;
33
+
34
+ if ( string . IsNullOrEmpty ( procId ) )
35
+ {
36
+ procId = GetMAC ( ) ;
37
+ }
38
+
39
+ return procId + '-' + mbId ;
40
+ }
41
+
42
+ static string GetSerialNumber ( )
43
+ {
44
+ var mos = new ManagementObjectSearcher ( "SELECT * FROM Win32_BaseBoard" ) ;
45
+ var moc = mos . Get ( ) ;
46
+ var mbId = String . Empty ;
47
+
34
48
foreach ( ManagementObject mo in moc )
35
49
{
36
50
mbId = ( string ) mo [ "SerialNumber" ] ;
37
- break ;
51
+ if ( ! string . IsNullOrEmpty ( mbId ) )
52
+ break ;
53
+ }
54
+
55
+ return mbId ;
56
+ }
57
+
58
+ static string GetProcId ( )
59
+ {
60
+ var mos = new ManagementObjectSearcher ( "Select * From Win32_processor" ) ;
61
+ var moc = mos . Get ( ) ;
62
+ var procId = string . Empty ;
63
+
64
+ foreach ( ManagementObject mo in moc )
65
+ {
66
+ procId = ( string ) mo [ "ProcessorID" ] ;
67
+ if ( ! string . IsNullOrEmpty ( procId ) )
68
+ break ;
38
69
}
70
+ return procId ;
71
+ }
39
72
40
- ManagementObjectCollection mbsList = null ;
41
- ManagementObjectSearcher mbs = new ManagementObjectSearcher ( "Select * From Win32_processor" ) ;
42
- mbsList = mbs . Get ( ) ;
43
- string procId = string . Empty ;
44
- foreach ( ManagementObject mo in mbsList )
73
+ static string GetMAC ( )
74
+ {
75
+ var mos = new ManagementObjectSearcher ( "Select * From Win32_NetworkAdapterConfiguration" ) ;
76
+ var moc = mos . Get ( ) ;
77
+ var mac = string . Empty ;
78
+
79
+ foreach ( ManagementObject mo in moc )
45
80
{
46
- procId = mo [ "ProcessorID" ] . ToString ( ) ;
47
- break ;
81
+ try
82
+ {
83
+ if ( ( bool ) mo [ "IPEnabled" ] )
84
+ {
85
+ mac = ( string ) mo [ "MacAddress" ] ;
86
+ break ;
87
+ }
88
+ }
89
+ catch ( Exception )
90
+ {
91
+ }
48
92
}
49
93
50
- return procId + "-" + mbId ;
94
+ return mac ;
51
95
}
52
96
}
53
97
}
0 commit comments