Compare commits

...

4 Commits

  1. 27
      MainWindow.xaml
  2. 47
      MainWindow.xaml.cs

27
MainWindow.xaml

@ -7,28 +7,27 @@
mc:Ignorable="d" mc:Ignorable="d"
Title="SUNLIGHT_CDKEY" Height="400" Width="600"> Title="SUNLIGHT_CDKEY" Height="400" Width="600">
<Grid> <Grid>
<TextBlock HorizontalAlignment="Left" Height="40" Margin="20,10,0,0" TextWrapping="Wrap" Text="SN:" VerticalAlignment="Top" Width="170" FontSize="24"/> <TextBlock HorizontalAlignment="Left" Height="40" Margin="20,10,0,0" TextWrapping="Wrap" Text="设备识别码:" VerticalAlignment="Top" Width="170" FontSize="24"/>
<TextBox x:Name="sn_id" HorizontalAlignment="Left" Height="40" Margin="170,10,0,0" VerticalAlignment="Top" Width="340" FontSize="24" <TextBox x:Name="sn_id" HorizontalAlignment="Left" Height="40" Margin="170,10,0,0" VerticalAlignment="Top" Width="340" FontSize="24"
PreviewTextInput="AlphanumericValidationTextBox" InputMethod.IsInputMethodEnabled="False"/> PreviewTextInput="AlphanumericValidationTextBox" InputMethod.IsInputMethodEnabled="False"/>
<TextBlock HorizontalAlignment="Left" Height="40" Margin="20,55,0,0" TextWrapping="Wrap" Text="DURATION:" VerticalAlignment="Top" Width="170" FontSize="24"/> <TextBlock HorizontalAlignment="Left" Height="40" Margin="20,55,0,0" TextWrapping="Wrap" Text="期限:" VerticalAlignment="Top" Width="170" FontSize="24"/>
<TextBlock HorizontalAlignment="Left" Height="40" Margin="400,55,0,0" TextWrapping="Wrap" Text="MONTHS" VerticalAlignment="Top" Width="170" FontSize="24"/> <TextBlock HorizontalAlignment="Left" Height="40" Margin="400,55,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="170" FontSize="24"/>
<ComboBox x:Name="DURATION" HorizontalAlignment="Left" Height="40" Margin="170,55,0,0" VerticalAlignment="Top" Width="220" DropDownClosed="DURATION_DropDownClosed" FontSize="24"> <ComboBox x:Name="DURATION" HorizontalAlignment="Left" Height="40" Margin="170,55,0,0" VerticalAlignment="Top" Width="220" DropDownClosed="DURATION_DropDownClosed" FontSize="24">
<ComboBoxItem Content=""></ComboBoxItem> <ComboBoxItem Content=""></ComboBoxItem>
<ComboBoxItem Content="1"></ComboBoxItem> <ComboBoxItem Content="1月"></ComboBoxItem>
<ComboBoxItem Content="2"></ComboBoxItem> <ComboBoxItem Content="3月"></ComboBoxItem>
<ComboBoxItem Content="3"></ComboBoxItem> <ComboBoxItem Content="6月"></ComboBoxItem>
<ComboBoxItem Content="6"></ComboBoxItem> <ComboBoxItem Content="12月"></ComboBoxItem>
<ComboBoxItem Content="12"></ComboBoxItem> <ComboBoxItem Content="长效"></ComboBoxItem>
<ComboBoxItem Content="FOREVER"></ComboBoxItem>
</ComboBox> </ComboBox>
<TextBlock HorizontalAlignment="Left" Height="40" Margin="20,100,0,0" TextWrapping="Wrap" Text="TIME:" VerticalAlignment="Top" Width="88" FontSize="24"/> <TextBlock HorizontalAlignment="Left" Height="40" Margin="20,100,0,0" TextWrapping="Wrap" Text="时间:" VerticalAlignment="Top" Width="88" FontSize="24"/>
<TextBox x:Name="T_Y" Text="0" HorizontalAlignment="Left" Height="40" Margin="170,100,0,0" VerticalAlignment="Top" Width="220" FontSize="24" InputMethod.IsInputMethodEnabled="False" PreviewTextInput="Tb_KeyFloating_Y" /> <TextBox x:Name="T_Y" Text="0" HorizontalAlignment="Left" Height="40" Margin="170,100,0,0" VerticalAlignment="Top" Width="220" FontSize="24" InputMethod.IsInputMethodEnabled="False" PreviewTextInput="Tb_KeyFloating_Y" />
<TextBlock HorizontalAlignment="Left" Height="40" Margin="400,100,0,0" TextWrapping="Wrap" Text="YEAR" VerticalAlignment="Top" Width="170" FontSize="24"/> <TextBlock HorizontalAlignment="Left" Height="40" Margin="400,100,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="170" FontSize="24"/>
<TextBox x:Name="T_M" Text="0" HorizontalAlignment="Left" Height="40" Margin="170,145,0,0" VerticalAlignment="Top" Width="220" FontSize="24" InputMethod.IsInputMethodEnabled="False" PreviewTextInput="Tb_KeyFloating_M" /> <TextBox x:Name="T_M" Text="0" HorizontalAlignment="Left" Height="40" Margin="170,145,0,0" VerticalAlignment="Top" Width="220" FontSize="24" InputMethod.IsInputMethodEnabled="False" PreviewTextInput="Tb_KeyFloating_M" />
<TextBlock HorizontalAlignment="Left" Height="40" Margin="400,145,0,0" TextWrapping="Wrap" Text="MONTHS" VerticalAlignment="Top" Width="170" FontSize="24"/> <TextBlock HorizontalAlignment="Left" Height="40" Margin="400,145,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="170" FontSize="24"/>
<TextBox x:Name="T_D" Text="0" HorizontalAlignment="Left" Height="40" Margin="170,190,0,0" VerticalAlignment="Top" Width="220" FontSize="24" InputMethod.IsInputMethodEnabled="False" PreviewTextInput="Tb_KeyFloating_D" /> <TextBox x:Name="T_D" Text="0" HorizontalAlignment="Left" Height="40" Margin="170,190,0,0" VerticalAlignment="Top" Width="220" FontSize="24" InputMethod.IsInputMethodEnabled="False" PreviewTextInput="Tb_KeyFloating_D" />
<TextBlock HorizontalAlignment="Left" Height="40" Margin="400,190,0,0" TextWrapping="Wrap" Text="DAY" VerticalAlignment="Top" Width="170" FontSize="24"/> <TextBlock HorizontalAlignment="Left" Height="40" Margin="400,190,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="170" FontSize="24"/>
<TextBlock HorizontalAlignment="Left" Height="40" Margin="20,235,0,0" TextWrapping="Wrap" Text="CDKEY:" VerticalAlignment="Top" Width="88" FontSize="24"/> <TextBlock HorizontalAlignment="Left" Height="40" Margin="20,235,0,0" TextWrapping="Wrap" Text="密钥:" VerticalAlignment="Top" Width="88" FontSize="24"/>
<TextBox x:Name="cdk" HorizontalAlignment="Left" Height="40" Margin="170,235,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="342" FontSize="24"/> <TextBox x:Name="cdk" HorizontalAlignment="Left" Height="40" Margin="170,235,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="342" FontSize="24"/>
<Button Content="OK" HorizontalAlignment="Left" Height="40" Margin="170,280,0,0" VerticalAlignment="Top" Width="85" Background="#FFE6E6E6" Click="Button_Click"/> <Button Content="OK" HorizontalAlignment="Left" Height="40" Margin="170,280,0,0" VerticalAlignment="Top" Width="85" Background="#FFE6E6E6" Click="Button_Click"/>

47
MainWindow.xaml.cs

@ -43,29 +43,38 @@ namespace SUNLIGHT_CDKEY
private void Tb_KeyFloating_D(object sender, TextCompositionEventArgs e)//输入事件 private void Tb_KeyFloating_D(object sender, TextCompositionEventArgs e)//输入事件
{ {
d = int.Parse(T_D.Text);
//Regex re = new Regex("[^0-9.-]+"); //Regex re = new Regex("[^0-9.-]+");
Regex re = new Regex(@"^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$");// 非负浮点数 Regex re = new Regex(@"^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$");// 非负浮点数
e.Handled = !re.IsMatch(e.Text); e.Handled = !re.IsMatch(e.Text);
if(d>30)T_D.Text = "30"; d = int.Parse(T_D.Text);
if (d > 30)
{
T_D.Text = "30";
}
} }
private void Tb_KeyFloating_Y(object sender, TextCompositionEventArgs e)//输入事件 private void Tb_KeyFloating_Y(object sender, TextCompositionEventArgs e)//输入事件
{ {
y = int.Parse(T_Y.Text);
//Regex re = new Regex("[^0-9.-]+"); //Regex re = new Regex("[^0-9.-]+");
Regex re = new Regex(@"^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$");// 非负浮点数 Regex re = new Regex(@"^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$");// 非负浮点数
e.Handled = !re.IsMatch(e.Text); e.Handled = !re.IsMatch(e.Text);
if (y > 2099) T_Y.Text = "2099"; y = int.Parse(T_Y.Text);
if (y > 2099)
{
T_Y.Text = "2099";
}
} }
private void Tb_KeyFloating_M(object sender, TextCompositionEventArgs e)//输入事件 private void Tb_KeyFloating_M(object sender, TextCompositionEventArgs e)//输入事件
{ {
m = int.Parse(T_M.Text);
//Regex re = new Regex("[^0-9.-]+"); //Regex re = new Regex("[^0-9.-]+");
Regex re = new Regex(@"^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$");// 非负浮点数 Regex re = new Regex(@"^[.][0-9]+$|^[0-9]*[.]{0,1}[0-9]*$");// 非负浮点数
e.Handled = !re.IsMatch(e.Text); e.Handled = !re.IsMatch(e.Text);
if (m > 12) T_M.Text = "12"; m = int.Parse(T_M.Text);
if (m > 12)
{
T_M.Text = "12";
}
} }
private void DURATION_DropDownClosed(object sender, EventArgs e) private void DURATION_DropDownClosed(object sender, EventArgs e)
@ -78,29 +87,27 @@ namespace SUNLIGHT_CDKEY
y = int.Parse(T_Y.Text); y = int.Parse(T_Y.Text);
m = int.Parse(T_M.Text); m = int.Parse(T_M.Text);
if (DURATION.Text == "1") if (DURATION.Text == "1")
{ {
m += 1; m += 1;
} }
else if (DURATION.Text == "2") else if (DURATION.Text == "3月")
{
m += 2;
}
else if (DURATION.Text == "3")
{ {
m += 3; m += 3;
} }
else if (DURATION.Text == "6") else if (DURATION.Text == "6月")
{ {
m += 6; m += 6;
} }
else if (DURATION.Text == "12") else if (DURATION.Text == "12")
{ {
y += 1; y += 1;
} }
else if (DURATION.Text == "FOREVER") else if (DURATION.Text == "长效")
{ {
y = 2099; y = 2099;
m = 12;
d = 30;
} }
if (m > 12) if (m > 12)
{ {
@ -118,6 +125,10 @@ namespace SUNLIGHT_CDKEY
string a; string a;
string b, my, mm, md; string b, my, mm, md;
d = int.Parse(T_D.Text);
y = int.Parse(T_Y.Text);
m = int.Parse(T_M.Text);
sn_id.Text = sn_id.Text.ToUpper(); sn_id.Text = sn_id.Text.ToUpper();
if (sn_id.Text.Length < 6)//id字节长度大于6有效 if (sn_id.Text.Length < 6)//id字节长度大于6有效
@ -134,10 +145,10 @@ namespace SUNLIGHT_CDKEY
my = Convert.ToString(Convert.ToInt32(2255 - y), 16).ToUpper(); my = Convert.ToString(Convert.ToInt32(2255 - y), 16).ToUpper();
mm = Convert.ToString(Convert.ToInt32(255 - m), 16).ToUpper(); mm = Convert.ToString(Convert.ToInt32(255 - m), 16).ToUpper();
md = Convert.ToString(Convert.ToInt32(255-d), 16).ToUpper(); md = Convert.ToString(Convert.ToInt32(255 - d), 16).ToUpper();
b=my+mm+md; b=my+mm+md;
cdk.Text = a + b + CRCcheck16.ToCRC16(CRCcheck16.StringToHexByte(b), true); cdk.Text = a + b + CRCcheck16.ToCRC16(CRCcheck16.StringToHexByte(a+b), true);
} }
} }

Loading…
Cancel
Save