.NET

27 abr, 2010

Pegando dados do computador facilmente via software

Publicidade

Olá, pessoal. Hoje gostaria de mostrar como pegar alguns dados do computador e placa de rede (mac adress) via software, usando a linguagem C#.NET. Fiz métodos simples, para serem usados nos aplicativos apenas chamando e passando os parâmetros, se necessário.

Requisitos:

  • Linguagem C#.NET
  • Ferramenta Visual Studio .NET
  • Versão testada: .NET 2.0 e .NET 3.5.

Não tenho muito o que explicar sobre os métodos, o importante é o perfeito funcionamento dos mesmos.

       /// <summary>
/// return Volume Serial Number from hard drive
/// </summary>
/// <param name="strDriveLetter">[optional] Drive letter</param>
/// <returns>[string] VolumeSerialNumber</returns>
public static string GetVolumeSerial(string strDriveLetter)
{
try
{
if (strDriveLetter == "" || strDriveLetter == null) strDriveLetter = "C";
ManagementObject disk = new ManagementObject("win32_logicaldisk.deviceid=\"" + strDriveLetter + ":\"");

disk.Get();
return disk["VolumeSerialNumber"].ToString();
}
catch
{
return "0";
}
}
........................................................................................

Code 1

O nome do método é GetVolumeSerial, ou seja, ele pega o valor do seu HD, pode ser o “C” ou o “D”. É importante passar um valor como parâmetro para pegar um volume específico.
   

        /// <summary>
/// Returns MAC Address from first Network Card in Computer
/// </summary>
/// <returns>[string] MAC Address</returns>
public static string GetMACAddress()
{
try
{
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
string MACAddress = String.Empty;
foreach (ManagementObject mo in moc)
{
if (MACAddress == String.Empty) // only return MAC Address from first card
{
if ((bool)mo["IPEnabled"] == true) MACAddress = mo["MacAddress"].ToString();
}
mo.Dispose();
}
MACAddress = MACAddress.Replace(":", " ");
return MACAddress;
}
catch
{
return "0";
}
}

Code 2
       
O segundo método pega o endereço mac da placa de rede. É um número bem grande e funciona melhor do que pegar o ip da máquina que pode mudar a todo tempo.
   

        /// <summary>
/// Return processorId from first CPU in machine
/// </summary>
/// <returns>[string] ProcessorId</returns>
public static string GetCPUId()
{
try
{
string cpuInfo = String.Empty;
string temp = String.Empty;
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (cpuInfo == String.Empty)
{// only return cpuInfo from first CPU
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
}
return cpuInfo;
}
catch
{
return "0";
}
}

Code 3
       
O código 3 é um método que pega o id da CPU do computador. Funciona muito bem por sinal. O quarto e último método que deixo registrado é o responsável em pegar o nome da máquina, veja:

        /// <summary>
/// Retorna o nome do computador
/// </summary>
/// <returns></returns>
public static string GetNomeComputador()
{
try
{
return Environment.MachineName.ToString();
}
catch (Exception ex)
{
throw ex;
}
}

Code 4
       
Bom, por enquanto eu fico por aqui. Se houver alguma dúvida, basta entrar em contato.