검색결과 리스트
글
노트북인지 데스크탑인지 알아내는 방법
(누구냐, 넌?!)
Intro
간혹 현재 PC 가 노트북인지, 데스크탑인지 알아야 할 때가 있습니다. 예를 들면, PC 의 타입에 따라 아이콘 모양을 다르게 한다거나 동작을 다르게 해야 할 경우죠. 그런데 이런 하드웨어적인 속성을 알아 낼 수 있을까요? 소프트웨어적인 방법으로 하드웨어 속성을 알아낸다? 가능한지 여부조차 알기 어렵습니다.
하지만! 가능합니다. 대부분 이런 하드웨어적인 속성이나 값은 WMI(Windows Management Instrumentation) 을 이용하면 알 수 있습니다. 예를 들어, 무선인터넷의 신호세기도 알아 낼 수 있죠.
Content
http://download.microsoft.com 에서 "wmi creator" 라고 검색하면 아래와 같은 매우 편리한 툴을 받으실 수 있습니다. 사용법은 매우매우 간단하니 쉽게 사용하실 수 있을 것입니다. 참고로 랭귀지 별로 코드도 자동 생성해 준답니다.
노트북인지 데스크탑인지 그 이외의 기기인지 알아내는 코드는 아래와 같습니다.
using System.Management;
public class CrystalCube
{
public enum ChassisTypes
{
Other = 1,
Unknown,
Desktop,
LowProfileDesktop,
PizzaBox,
MiniTower,
Tower,
Portable,
Laptop,
Notebook,
Handheld,
DockingStation,
AllInOne,
SubNotebook,
SpaceSaving,
LunchBox,
MainSystemChassis,
ExpansionChassis,
SubChassis,
BusExpansionChassis,
PeripheralChassis,
StorageChassis,
RackMountChassis,
SealedCasePC
}
public static ChassisTypes GetChassisType() {
try {
ManagementClass systemEnclosures = new ManagementClass("Win32_SystemEnclosure");
foreach (ManagementObject obj in systemEnclosures.GetInstances()) {
foreach (int index in (System.UInt16[])obj.GetPropertyValue("ChassisTypes")) {
return (ChassisTypes)index;
}
}
return ChassisTypes.Unknown;
} catch {
return ChassisTypes.Unknown;
}
}
}
간단하죠? 참 System.Management 는 기본적으로 참조되지 않기 때문에, 반드시 추가적으로 참조시켜 주어야 한답니다. 자세한(?) 내용은 MSDN 을 통해 보실 수 있습니다.
http://msdn.microsoft.com/en-us/library/aa394474(VS.85).aspx
Epilogue
그 이외에 하드웨어적인 혹은 애매한 것들은 "WMI" 라는 키워드와 함께 검색해보시면, 의외의 좋은 검색결과를 얻으 실 수 있을 겁니다. 아니면 말고요~ㅋ
'Microsoft > C#' 카테고리의 다른 글
HttpWebRequest 로 FileUpload 시에 주의할 점 (2) | 2011.02.07 |
---|---|
Global Hooking in .NET (1) | 2011.01.24 |
사용 가능한 포트번호 구하기 (1) | 2011.01.07 |
HttpWebRequest 를 이용하여 파일 전송하기 (2) | 2010.12.03 |
윈도우 방화벽 해제하는 방법 (6) | 2010.11.23 |
RECENT COMMENT