CPU ID 및 드라이브/볼륨 직렬을 가져오기 위한 C#의 API
문제
WMI를 쿼리하면 물리적 드라이브의 CPU 식별자와 볼륨 일련 번호를 얻을 수 있다는 것을 알고 있지만 일반적으로 WMI에는 시간이 많이 걸립니다.이 정보를 검색하는 데 사용할 수 있는 더 빠른 옵션은 무엇입니까?이를 수행하는 Win32 API가 있습니까?
편집하다: 명확히하겠습니다.CPU 식별자란 다음 WMI 인스턴스 속성을 쿼리하여 얻는 것과 동일한 값을 의미합니다.
- Win32_Processor::ProcessorId
- Win32_LogicalDisk::VolumeSerialNumber
해결책
CPU의 ID를 항상 사용할 수있는 것은 아닙니다.
그건 그렇고, 당신은 무엇을 성취하려고합니까? 컴퓨터 인스턴스에 대한 고유 키를 생성하려면 라이센스 목적으로 컴퓨터 용 고유 키 (지문) 생성 CodeProject의 Sowkot Osman에 의해 게시; 힌트를 줄 수 있습니다 (주석도 읽습니다).
다른 팁
CPU에 대해서는 확실하지 않지만 Windows 레지스트리에서 드라이브 정보를 쿼리할 수 있습니다.귀하의 질문은 이 SO q/a에서 해결된 것 같습니다(이 정보를 얻는 여러 가지 방법을 보여 주지만 속도를 위해서는 레지스트리에서 가져오는 것이 가장 좋습니다).
WMI는 실제로 레지스트리에서 데이터의 상당 부분을 차지합니다. 이 시스템은 시스템에 대한 많은 정보를 저장하며 응답하기가 매우 빠릅니다.
라이센스 이유로 마더 보드, CPU 및/또는 HDD에 고정하려면 다음 값을 확인하십시오.
HKLM Hardware Description System BIOS Baseboard Manufacturer
HKLM Hardware Description System Bios BaseboardProduct
HKLM Hardware Description System CentralProcessor 0 Identifier
HKLM Hardware Description System CentralProcessor 0 ProcessorNamestring
HKLM Software Microsoft Windows NT CurrentVersion DigitalProductID
HKLM Software Microsoft Windows NT CurrentVersion productId
HKLM Software Microsoft Windows NT CurrentVersion buildLabex
hklm Hardware Description System MultifunctionAdapter 0 DiskController 0 DiskPeripheral 0
(사용중인 공습이있는 보드에만 해당 될 수 있음)
WMI없이 디스크 직렬을 얻으려면 Deviceiocontrol 호출을 실제 드라이브 장치로 발행하십시오. vb.net의 샘플 코드 : http://www.dreamincode.net/code/snippet429.htm
CPUID의 경우 다음을 시도하십시오. http://devpinoy.org/blogs/cvega/archive/2006/04/07/2658.aspx
볼륨 일련 번호의 경우 다음을 시도하십시오. http://www.eggeadcafe.com/articles/20021019.asp
구글은 당신의 친구입니다 ;-)
좋아요 getsysteminfo 그러나 그것은 물리적 드라이브를 다루지 않습니다 ..