C# 您正在尝试记录其他尝试使用该程序的计算机吗?不,我实际上阻止其他计算机使用此应用程序。所以,我想使用机器的序列号(我想允许这个应用程序)作为字符串,并在代码中进行比较(就像您为我做的那样)。但是我使用的代码hdSN=wmi_HDD[“SerialNumbe
C# 您正在尝试记录其他尝试使用该程序的计算机吗?不,我实际上阻止其他计算机使用此应用程序。所以,我想使用机器的序列号(我想允许这个应用程序)作为字符串,并在代码中进行比较(就像您为我做的那样)。但是我使用的代码hdSN=wmi_HDD[“SerialNumbe,c#,winforms,runtime,hard-drive,C#,Winforms,Runtime,Hard Drive,您正在尝试记录其他尝试使用该程序的计算机吗?不,我实际上阻止其他计算机使用此应用程序。所以,我想使用机器的序列号(我想允许这个应用程序)作为字符串,并在代码中进行比较(就像您为我做的那样)。但是我使用的代码hdSN=wmi_HDD[“SerialNumber”].ToString()不知怎的没有得到序列号。该方法的其余部分是完美的,我已经接受了它作为我的答案。@teccraft我不确定为什么它对您不起作用,因为该对象可以一直追溯到.Net 1.1。我已经更新了我的答案,包括使用用户名而不是HD
您正在尝试记录其他尝试使用该程序的计算机吗?不,我实际上阻止其他计算机使用此应用程序。所以,我想使用机器的序列号(我想允许这个应用程序)作为字符串,并在代码中进行比较(就像您为我做的那样)。但是我使用的代码
hdSN=wmi_HDD[“SerialNumber”].ToString()代码>不知怎的没有得到序列号。该方法的其余部分是完美的,我已经接受了它作为我的答案。@teccraft我不确定为什么它对您不起作用,因为该对象可以一直追溯到.Net 1.1。我已经更新了我的答案,包括使用用户名而不是HD SN(如果有帮助的话)。如果我有SDD,是否应该有任何更改?我试图运行代码,在引号内添加我笔记本电脑的串行密钥,但它抛出了一个未处理的异常。有办法解决这个问题吗@Terrysonth这个解决方案对我很有效。然而,我不知何故无法以正确的方式获取当前机器的hdd序列号。我不明白你在说什么。您正在尝试记录其他尝试使用该程序的计算机吗?不,我实际上阻止其他计算机使用此应用程序。所以,我想使用机器的序列号(我想允许这个应用程序)作为字符串,并在代码中进行比较(就像您为我做的那样)。但是我使用的代码hdSN=wmi_HDD[“SerialNumber”].ToString()代码>不知怎的没有得到序列号。该方法的其余部分是完美的,我已经接受了它作为我的答案。@teccraft我不确定为什么它对您不起作用,因为该对象可以一直追溯到.Net 1.1。我已经更新了我的答案,包括使用用户名而不是HD SN(如果有帮助的话)。如果我有SDD,是否应该有任何更改?我试图运行代码,在引号内添加我笔记本电脑的串行密钥,但它抛出了一个未处理的异常。有办法解决这个问题吗@特雷森
ManagementObjectSearcher moSearcher = new ManagementObjectSearcher("select * from Win32_DiskDrive");
foreach (ManagementObject wmi_HDD in moSearcher.Get())
{
HardDrive hdd = new HardDrive();
hdd.Model = wmi_HDD["Model"].ToString();
hdd.SerialNo = wmi_HDD["SerialNumber"].ToString();
hdd.Type = wmi_HDD["InterfaceType"].ToString();
HDDArrayList.Add(wmi_HDD);
txtHDDModel.Text = hdd.Model;
txtHDDSerialNo.Text = hdd.SerialNo;
txtHDDType.Text = hdd.Type;
}
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (ValidHD() != true)
{
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
private static bool ValidHD()
{
string hdSN = String.Empty;
ManagementObjectSearcher moSearcher = new ManagementObjectSearcher("select * from Win32_DiskDrive");
foreach (ManagementObject wmi_HDD in moSearcher.Get())
{
hdSN = wmi_HDD["SerialNumber"].ToString();
}
if (hdSN == "Your_SN_Here")
{
return true;
}
else
{
return false;
}
}
}
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (ValidUser() != true)
{
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
private static bool ValidUser()
{
if (System.Environment.UserName == "Your_Username_Here")
{
return true;
}
else
{
return false;
}
}
}