none
Número de Série do HD (WPF C#) RRS feed

  • Pergunta

  • Pessoal eu estou querendo pegar o número de série do HD da máquina ao qual está rodando a minha aplicação, eu achei um código no fórum porém não funcionou...

    //Namespace Reference
    using System.Management
    
    /// <summary>
    /// method to retrieve the selected HDD's serial number
    /// </summary>
    /// <param name="strDriveLetter">Drive letter to retrieve serial number for</param>
    /// <returns>the HDD's serial number</returns>
    public string GetHDDSerialNumber(string drive)
    {
        //check to see if the user provided a drive letter
        //if not default it to "C"
        if (drive == "" || drive == null)
        {
            drive = "C";
        }
        //create our ManagementObject, passing it the drive letter to the
        //DevideID using WQL
        ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + drive +":\"");
        //bind our management object
        disk.Get();
        //return the serial number
        return disk["VolumeSerialNumber"].ToString();
    }

    Só que este código não está funcionando o que eu devo fazer?

    quarta-feira, 2 de janeiro de 2013 20:54

Respostas

  • Pessoal eu estou querendo pegar o número de série do HD da máquina ao qual está rodando a minha aplicação, eu achei um código no fórum porém não funcionou...

    //Namespace Reference
    using System.Management
    
    /// <summary>
    /// method to retrieve the selected HDD's serial number
    /// </summary>
    /// <param name="strDriveLetter">Drive letter to retrieve serial number for</param>
    /// <returns>the HDD's serial number</returns>
    public string GetHDDSerialNumber(string drive)
    {
        //check to see if the user provided a drive letter
        //if not default it to "C"
        if (drive == "" || drive == null)
        {
            drive = "C";
        }
        //create our ManagementObject, passing it the drive letter to the
        //DevideID using WQL
        ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + drive +":\"");
        //bind our management object
        disk.Get();
        //return the serial number
        return disk["VolumeSerialNumber"].ToString();
    }

    Só que este código não está funcionando o que eu devo fazer?

    Tenta a API WIN32 GetVolumeInformation, segue abaixo link no PInvoke pra copiar e colar...

    http://www.pinvoke.net/default.aspx/kernel32.GetVolumeInformation


    Leonardo Lourenço Silva

    domingo, 6 de janeiro de 2013 01:35