C# HWID 检查,它的工作但不会传递给字符串

C# HWID Check, its working but wont pass in to string

好吧,我用于检查 HWID 的代码工作正常,但是当涉及到将 HWID 传入字符串的部分时,它不起作用,返回空白。

这是我使用的代码

private void Form1_Load(object sender, EventArgs e)
    {
        string HWID = string.Empty;//creating a empty string
        ManagementClass Management = new ManagementClass("win32_processor");//declaring the system management calss
        ManagementObjectCollection MObject = Management.GetInstances();//decalring the system management object collection 
        foreach (ManagementObject mob in MObject)//having a foreach loop
        {
            if (string.IsNullOrEmpty(HWID))
            {
                HWID = mob.GetPropertyValue("processorID").ToString();//converting the HWID to string
                break;
            }
        }

     }

    private void alphaBlendTextBox2_TextChanged(object sender, EventArgs e)
    {

    }

    private void pictureBox1_Click(object sender, EventArgs e)
    {
       string loginUrl = "http://xxxxxx.xyz/customapi.php?username=" + alphaBlendTextBox1.Text + "&password=" + alphaBlendTextBox2.Text + "&hid=" + hwid + "&apiKey=APIKEYHERE&hid=" + HWID + "&ver=2";

为了让一切更加清晰,我正在尝试进行 API 调用,一切都很好,但是当涉及到 HWID 时,它就失败了。

//编辑

我一直在失败,如果有人愿意重写和修复代码,我会很高兴。谢谢!

如果 HWID 字符串不是静态的或不可从其他方法访问或 class

,则无需将 HWID 字符串设置为 null

我知道任何人都有一些编码风格,但如果您在代码上方写下您的评论,它会更干净和可读

查看此 Question and This 教程

如果我想获取 HardwareID,我会创建一个方法来获取它

您必须在 Form1_Load 之外声明字符串 "HWID"。

看起来像

string HWID = string.Empty;//creating a empty string

private void Form1_Load(object sender, EventArgs e)
{
    ManagementClass Management = new ManagementClass("win32_processor");//declaring the system management calss
    ManagementObjectCollection MObject = Management.GetInstances();//decalring the system management object collection 
    foreach (ManagementObject mob in MObject)//having a foreach loop
    {
        if (string.IsNullOrEmpty(HWID))
        {
            HWID = mob.GetPropertyValue("processorID").ToString();//converting the HWID to string
            break;
        }
    }

 }

我一直都是这样做的

string HWID = String.Empty;
ManagementObjectSearcher moSearcher = new ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_Processor");
foreach (ManagementObject mngObj in moSearcher.Get())
{
   HWID = mngObj["ProcessorId"].ToString();
}