feat: 添加电脑唯一码

master
Tongg 5 months ago
parent 6e92feced2
commit c5a0a42c43
  1. 33
      UserManagerTool/InstallWindow.xaml
  2. 27
      UserManagerTool/InstallWindow.xaml.cs
  3. 18
      UserManagerTool/Model/Helper/Common.cs
  4. 2
      UserManagerTool/UserManagerTool.csproj

@ -164,34 +164,49 @@
</Border> </Border>
</Grid> </Grid>
<!-- 设备号 --> <!-- 设备号 -->
<Grid Grid.Row="5" Grid.Column="0" Margin="20 10 20 0" Height="30"> <!-- <Grid Grid.Row="5" Grid.Column="0" Margin="20 10 20 0" Height="30"> -->
<!-- <Grid.ColumnDefinitions> -->
<!-- <ColumnDefinition Width="Auto" /> -->
<!-- <ColumnDefinition Width="*" /> -->
<!-- <ColumnDefinition Width="Auto" /> -->
<!-- </Grid.ColumnDefinitions> -->
<!-- <TextBlock Grid.Column="0" Text="设 备 号 码:" Style="{StaticResource TextBlockTitle}"/> -->
<!-- <Border Grid.Column="1" BorderBrush="#40b1ff" -->
<!-- BorderThickness="1" -->
<!-- CornerRadius="5"> -->
<!-- <TextBox Style="{StaticResource TextBox}" Text="" x:Name="DeviceCode" /> -->
<!-- </Border> -->
<!-- </Grid> -->
<Grid Grid.Row="6" Grid.Column="0" Margin="20 10 20 0" Height="30">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="设 备 号 码:" Style="{StaticResource TextBlockTitle}"/> <TextBlock Grid.Column="0" Text="切工仪URL:" Style="{StaticResource TextBlockTitle}"/>
<Border Grid.Column="1" BorderBrush="#40b1ff" <Border Grid.Column="1" BorderBrush="#40b1ff"
BorderThickness="1" BorderThickness="1"
CornerRadius="5"> CornerRadius="5 0 0 5">
<TextBox Style="{StaticResource TextBox}" Text="" x:Name="DeviceCode" /> <TextBox Style="{StaticResource TextBox}" Text="http://127.0.0.1/cut" x:Name="CutUrl" />
</Border> </Border>
<Button Grid.Column="2" Style="{StaticResource PrimaryButton}" Content="Ping" Width="40" x:Name="TestCutUrl" Click="ButtonBase_OnClick"/>
</Grid> </Grid>
<Grid Grid.Row="7" Grid.Column="0" Margin="20 10 20 0" Height="30">
<Grid Grid.Row="6" Grid.Column="0" Margin="20 10 20 0" Height="30">
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="切工仪URL:" Style="{StaticResource TextBlockTitle}"/> <TextBlock Grid.Column="0" Text="电脑唯一码:" Style="{StaticResource TextBlockTitle}"/>
<Border Grid.Column="1" BorderBrush="#40b1ff" <Border Grid.Column="1" BorderBrush="#40b1ff"
BorderThickness="1" BorderThickness="1"
CornerRadius="5 0 0 5"> CornerRadius="5 0 0 5">
<TextBox Style="{StaticResource TextBox}" Text="http://127.0.0.1/cut" x:Name="CutUrl" /> <TextBox Style="{StaticResource TextBox}" IsReadOnly="True" Text="" x:Name="ComputerCode" />
</Border> </Border>
<Button Grid.Column="2" Style="{StaticResource PrimaryButton}" Content="Ping" Width="40" x:Name="TestCutUrl" Click="ButtonBase_OnClick"/> <Button Grid.Column="2" Style="{StaticResource PrimaryButton}" Content="复制" Width="40" x:Name="CopyComputerCode" Click="ButtonBase_OnClick"/>
</Grid> </Grid>
<!-- <Grid Grid.Row="7" Grid.Column="0" Margin="20 10 20 0" Height="30"> --> <!-- <Grid Grid.Row="7" Grid.Column="0" Margin="20 10 20 0" Height="30"> -->
<!-- <Grid.ColumnDefinitions> --> <!-- <Grid.ColumnDefinitions> -->

@ -33,13 +33,14 @@ public partial class InstallWindow : Window
* 6. * 6.
* 7. -> * 7. ->
*/ */
if (InstallSprakCheck()) if (InstallSprakCheck())
{ {
InstallProgressBar.Visibility = Visibility.Visible; InstallProgressBar.Visibility = Visibility.Visible;
StatusTextBlock.Visibility = Visibility.Visible; StatusTextBlock.Visibility = Visibility.Visible;
Install.IsEnabled = false; Install.IsEnabled = false;
TestCutUrl.IsEnabled = false; TestCutUrl.IsEnabled = false;
DeviceCode.IsEnabled = false; // DeviceCode.IsEnabled = false;
DefaultPassword.IsEnabled = false; DefaultPassword.IsEnabled = false;
DefaultUserName.IsEnabled = false; DefaultUserName.IsEnabled = false;
BrowseInstallPath.IsEnabled = false; BrowseInstallPath.IsEnabled = false;
@ -55,7 +56,7 @@ public partial class InstallWindow : Window
{ {
Install.IsEnabled = true; Install.IsEnabled = true;
TestCutUrl.IsEnabled = true; TestCutUrl.IsEnabled = true;
DeviceCode.IsEnabled = true; // DeviceCode.IsEnabled = true;
DefaultPassword.IsEnabled = true; DefaultPassword.IsEnabled = true;
DefaultUserName.IsEnabled = true; DefaultUserName.IsEnabled = true;
BrowseInstallPath.IsEnabled = true; BrowseInstallPath.IsEnabled = true;
@ -263,12 +264,12 @@ public partial class InstallWindow : Window
return false; return false;
} }
string strDeviceCode = DeviceCode.Text; // string strDeviceCode = DeviceCode.Text;
if (strDeviceCode.Length < 4) // if (strDeviceCode.Length < 4)
{ // {
MessageBox.Show("设备号长度至少4位!"); // MessageBox.Show("设备号长度至少4位!");
return false; // return false;
} // }
string strCutUrl = CutUrl.Text; string strCutUrl = CutUrl.Text;
if (string.IsNullOrWhiteSpace(strCutUrl)) if (string.IsNullOrWhiteSpace(strCutUrl))
@ -324,6 +325,10 @@ public partial class InstallWindow : Window
case "BrowseInstallPath": case "BrowseInstallPath":
SetInstallPath(); SetInstallPath();
break; break;
case "CopyComputerCode":
Clipboard.SetText(ComputerCode.Text);
MessageBox.Show("已复制");
break;
} }
} }
} }
@ -373,5 +378,11 @@ public partial class InstallWindow : Window
MessageBox.Show("建议以管理员权限运行此程序!", "权限不足", MessageBoxButton.OK, MessageBoxImage.Warning); MessageBox.Show("建议以管理员权限运行此程序!", "权限不足", MessageBoxButton.OK, MessageBoxImage.Warning);
} }
string cpuInfo = Common.GetHardwareInfo("Win32_Processor", "ProcessorId");
string motherboardInfo = Common.GetHardwareInfo("Win32_BaseBoard", "SerialNumber");
string diskInfo =Common. GetHardwareInfo("Win32_DiskDrive", "SerialNumber");
ComputerCode.Text = Common.GenerateMd5Hash(cpuInfo+motherboardInfo+diskInfo);
} }
} }

@ -1,5 +1,6 @@
using System.Data; using System.Data;
using System.IO; using System.IO;
using System.Management;
using System.Net.NetworkInformation; using System.Net.NetworkInformation;
using System.Reflection; using System.Reflection;
using System.Security.Cryptography; using System.Security.Cryptography;
@ -159,4 +160,21 @@ public class Common
return null; return null;
} }
public static string GetHardwareInfo(string wmiClass, string wmiProperty)
{
string result = string.Empty;
ManagementObjectSearcher searcher = new ManagementObjectSearcher($"SELECT {wmiProperty} FROM {wmiClass}");
foreach (ManagementObject obj in searcher.Get())
{
if (obj[wmiProperty] != null)
{
result = obj[wmiProperty].ToString();
break;
}
}
return result;
}
} }

@ -21,6 +21,7 @@
<NeutralLanguage>zh</NeutralLanguage> <NeutralLanguage>zh</NeutralLanguage>
<AssemblyOriginatorKeyFile>SparkClient.snk</AssemblyOriginatorKeyFile> <AssemblyOriginatorKeyFile>SparkClient.snk</AssemblyOriginatorKeyFile>
<PublicSign>true</PublicSign> <PublicSign>true</PublicSign>
<ApplicationIcon>instal.ico</ApplicationIcon>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@ -28,6 +29,7 @@
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" /> <PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="SQLitePCLRaw.bundle_e_sqlcipher" Version="2.1.10" /> <PackageReference Include="SQLitePCLRaw.bundle_e_sqlcipher" Version="2.1.10" />
<PackageReference Include="System.Management" Version="9.0.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

Loading…
Cancel
Save