C#HWID检查,它可以工作,但不会传递到字符串中

C#HWID检查,它可以工作,但不会传递到字符串中,c#,api,hwid,C#,Api,Hwid,好的,我检查HWID的代码运行良好,但是当它将HWID传递到字符串中时,它将返回空白 这是我使用的代码 private void Form1_Load(object sender, EventArgs e) { string HWID = string.Empty;//creating a empty string ManagementClass Management = new ManagementClass("win32_processor");//d

好的,我检查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字符串不是静态的或不能从其他方法或类访问,则无需将其设置为null

我知道任何人都有一些编码风格,但是如果你把你的评论写在你的代码上面,它会更清晰易读

请参见本教程和教程


如果我想获取HardwareID,我会为获取它创建一个方法,你必须在Form1\u 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();
}

让我试试,我会告诉你会发生什么,泰!我一直失败:/n您使HWID成为Form1_Load()方法的局部变量。删除“string”。@HansPassant是这样的吗?我有点修复它,现在的问题是,我需要使这个工作在64/32位PC上。这是正常的工作为32位,但在64位PC上它返回相同的ID无论什么