none
duvidas de portas em C# RRS feed

  • Discussão Geral

  • Boa noite, 

    Gostaria de uma ajuda para trabalhar com portas sata em C#, sou inexperiente em C# e preciso criar uma aplicaçao que identifique quando o hd e conectado ou desconectado da porta sata e contabilizar quantas vezes ocorreu o evento de conectar mas minha duvida e como fazer para o C# identificar esse evento de conectar o HD na porta ?

    • Tipo Alterado Marcos SJ quarta-feira, 11 de maio de 2016 12:34 How to
    quarta-feira, 11 de maio de 2016 01:28

Todas as Respostas

  • C# roda em um nivel mais alto e voce nao tera acesso diretamente à porta SATA. Para isso voce vai ter que interrogar o WMI (Windows)

    Aqui esta um codigo que te fornece algumas informaçoes:

    using System;
    using System.Linq;
    using System.Management;
    
    namespace DiskScanPOC
    {
        class Program
        {
            static void Main()
            {
                var managementScope = new ManagementScope();
    
                //get disk drives
                var query = new ObjectQuery("select * from Win32_DiskDrive");
                var searcher = new ManagementObjectSearcher(managementScope, query);
                var oReturnCollection = searcher.Get();
    
                //List all properties available, in case the below isn't what you want.
                var colList = oReturnCollection.Cast<ManagementObject>().First();
                foreach (var property in colList.Properties)
                {
                    Console.WriteLine("Property: {0} = {1}", property.Name, property.Value);
                }
    
                //loop through found drives and write out info
                foreach (ManagementObject oReturn in oReturnCollection)
                {
                    Console.WriteLine("Name : " + oReturn["Name"]);
                    Console.WriteLine("Target Id: " + oReturn["SCSITargetId"]);
                    Console.WriteLine("Port: " + oReturn["SCSIPort"]);
                }
                Console.Read();
            }
        }
    }

    A base deste codigo é a query feita no WMI:

    select * from Win32_DiskDrive

    aqui esta a lista de todos os campos que essa query é capaz de trazer:

    https://msdn.microsoft.com/en-us/library/aa394132%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    quarta-feira, 11 de maio de 2016 12:57
    Moderador