function getSysInfo(){ var locator = new ActiveXObject ("WbemScripting.SWbemLocator") var service = locator.ConnectServer("." ); //CPU 정보 var cpu = new Enumerator (service.ExecQuery("SELECT * FROM Win32_Processor")).item() var cpuType=cpu.Name,hostName=cpu.SystemName ; //메모리 정보 var memory = new Enumerator (service.ExecQuery("SELECT * FROM Win32_PhysicalMemory")) for (var mem=[],i=0;!memory.atEnd( );memory.moveNext()) mem[i ]={cap:memory.item().Capacity/1024/1024,speed:memory.item().Speed} //시스템 정보 var system =new Enumerator (service.ExecQuery("SELECT * FROM Win32_ComputerSystem")).item(); varphysicMenCap=Math.ceil(system.TotalPhysicalMemory/1024/1024),curUser=system.UserName,cpuCount=system. NumberOfProcessors
먼저 새로운 ActiveXObject("WbemScripting.SWbemLocator")를 통해 WbemScripting 개체에 액세스합니다. locator.ConnectServer(".")를 통해 로컬 컴퓨터에 연결합니다(.는 로컬 컴퓨터를 나타냅니다. 물론 은 다른 컴퓨터에도 액세스할 수 있습니다). SQL과 유사한 문인 service.ExecQuery("SELECT * FROM Win32_Processor")를 통해 필요한 개체의 레코드 세트를 가져옵니다(실제로 시스템 정보도 계산에서 데이터베이스와 같은 파일에 저장됩니다). . 새 Enumerator를 사용하여 열거 가능한 개체를 만든 다음 순회하여 정보를 얻을 수 있습니다.
참고: 실행을 위한 전제 조건은 브라우저 보안 설정을 "실행하기에 안전한 것으로 표시되지 않은 ActiveX 스크립트의 실행을 허용"으로 수정하는 것입니다. 여기서 주요 정보는 CPU, 메모리 및 시스템 사용자입니다. WMI API 또는 JSEDIT를 사용하여 더 많은 정보를 얻을 수 있습니다. 공통 정보에 대한 클래스는 다음과 같습니다.
Win32_Processor // CPU 프로세서
Win32_PhysicalMemory // 물리적 메모리
Win32_Keyboard // 키보드
Win32_PointingDevice / / 포인트 마우스 등의 입력 장치
Win32_DiskDrive // 하드 드라이브
Win32_CDROMDrive // CD 드라이브
Win32_BaseBoard // 마더보드
Win32_BIOS / / BIOS 칩
Win32_ParallelPort // 병렬 포트
Win32_SerialPort // 직렬 포트
Win32_SoundDevice // 멀티미디어 설정
Win32_USBController // USB 컨트롤러
Win32_NetworkAdapter // 네트워크 어댑터
Win32_NetworkAdapterConfiguration // 네트워크 어댑터 설정
Win32_Printer // 프린터
Win32_PrinterConfiguration // 프린터 설정
Win32_PrintJob // 프린터 작업
Win32_TCPIPPrinterPort // 프린터 포트
Win32_POTSModem // MODEM
Win32_POTSModemToSerialPort // MODEM 포트
Win32_DesktopMonitor // 모니터
Win32_VideoController // 카드 세부정보를 표시합니다.
Win32_VideoSettings // 그래픽 카드가 지원하는 디스플레이 모드입니다.
Win32_TimeZone // 시간대
Win32_SystemDriver // 드라이버
Win32_DiskPartition // 디스크 파티션
Win32_LogicalDisk // 논리 디스크
Win32_LogicalMemoryConfiguration // 논리 메모리 구성
Win32_PageFile // 시스템 페이지 파일 정보
Win32_PageFileSetting // 페이지 파일 설정
Win32_BootConfiguration // 시스템 시작 구성
Win32_OperatingSystem / / 운영체제 정보
Win32_StartupCommand // 시스템 자동 시작 프로그램
Win32_Service // 시스템 설치 서비스
Win32_Group // 시스템 관리 그룹
Win32_GroupUser / / 시스템 그룹 계정
Win32_UserAccount // 사용자 계정
Win32_Process // 시스템 프로세스
Win32_Thread // 시스템 스레드
Win32_Share // 공유
Win32_NetworkClient // 설치된 네트워크 클라이언트
Win32_NetworkProtocol // 설치된 네트워크 프로토콜
WMI Win32 클래스에 대한 전체 정보 및 자세한 목록은 MSDN: http: //msdn2를 참조하세요. .microsoft.com/en-us/library/aa394084(VS.85).aspx 예:
functionbutton1_onclick() {//cpu 信息 var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); var Properties = service.ExecQuery("SELECT * FROM Win32_Processor"); var e = 새 열거자(속성); document.write("<테이블 테두리=1>"); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write("
"); document.write("
" p.Caption "
"); document.write("
" p.DeviceID "
"); document.write("
" p.Name "
"); document.write("
" p.CpuStatus "
"); document.write("
" p.가용성 "
"); document.write("
" p.Level "
"); document.write("
" p.ProcessorID "
"); document.write("
" p.SystemName "
"); document.write("
" p.ProcessorType "
"); document.write("
"); } document.write(""); }
function Button2_onclick() {//CD-ROM 信息 var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); var Properties = service.ExecQuery("SELECT * FROM Win32_CDROMDrive"); var e = 새 열거자(속성); document.write("<테이블 테두리=1>"); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write("
"); document.write("
" p.Caption "
"); document.write("
" p.Description "
"); document.write("
" p.Drive "
"); document.write("
" p.Status "
"); document.write("
" p.MediaLoaded "
"); document.write("
"); } document.write(""); }
function Button3_onclick() {//键盘信息 var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); var Properties = service.ExecQuery("SELECT * FROM Win32_Keyboard"); var e = 새 열거자(속성); document.write("<테이블 테두리=1>"); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write("
"); document.write("
" p.Description "
"); document.write("
" p.Name "
"); document.write("
" p.Status "
"); document.write("
"); } document.write(""); }
function Button4_onclick() {//主板信息 var locator = new ActiveXObject ("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); var Properties = service.ExecQuery("SELECT * FROM Win32_BaseBoard"); var e = 새 열거자(속성); document.write("<테이블 테두리=1>"); for (;!e.atEnd();e.moveNext ()) { var p = e.item (); document.write("
사실 가장 중요한 것은 두 개의 ActiveX를 사용하는 것입니다: > 그러나 이 두 개의 ActiveX는 시스템과 함께 제공되므로 다운로드하거나 등록할 필요가 없습니다. 다음 단계는 스크립트를 사용하여 ActiveX와 상호작용하는 것입니다
; function getCode(){ var locator = new ActiveXObject("WbemScripting.SWbemLocator"); var service = locator.ConnectServer("."); " SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE"); var e = new Enumerator(properties); document.write("
") for (; !e .atEnd(); e.moveNext()) { var p = e.item() //if(p.IPAddress(0)!=null && p.IPAddress(0)!=" 정의되지 않음 " && p.IPAddress(0)!="0.0.0.0" && p.IPAddress(0)!="127.0.0.1"){ document.write("