-1

好的,我检查 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 时,它失败了。

//编辑

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

4

2 回答 2

1

您必须在 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();
}
于 2016-10-09T20:24:38.227 回答
0

如果 HWID 字符串不是静态的或不可从其他方法或类访问,则无需将其设置为 null

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

请参阅此问题教程

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

于 2016-10-09T17:05:45.970 回答