반응형
* VBNET WMI 를 이용한 하드 디스크 온도 체크 예제 (HDD Temperature)
- WMI 를 사용하기 위해 참조 -> System.Management dll 을 추가 -> 소스 코드 imports System.Management
전체 소스 코드
Form1.vb
Imports System.Management
Imports Microsoft.Win32
Imports System.Collections
Public Class Form1
Dim tmr As System.Windows.Forms.Timer = New System.Windows.Forms.Timer()
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
'타이머가 도는 시간 설정
tmr.Interval = 1000 '1초
'타이머 이벤트 등록
AddHandler tmr.Tick, AddressOf Timer_Tick
MyBase.OnLoad(e)
End Sub
Protected Overrides Sub OnClosed(ByVal e As System.EventArgs)
tmr.Stop()
'메모리 해제
tmr = Nothing
'메모리 정리
GC.Collect()
MyBase.OnClosed(e)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'타이머 시작
tmr.Start()
End Sub
Sub Timer_Tick()
HDDTemperatrue()
End Sub
Public Sub HDDTemperatrue()
Dim diskTemperature As String = "MSStorageDriver_ATAPISmartData"
Try
Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher("root\WMI", "Select * From " + diskTemperature)
Dim mo As System.Management.ManagementObject
For Each mo In mos.Get()
Dim data() As Byte = CType(mo.GetPropertyValue("VendorSpecific"), Byte())
diskTemperature = data(3).ToString()
Label1.Text = diskTemperature.ToString()
Next
Catch
diskTemperature = ""
End Try
End Sub
End Class
*예제 결과
https://kdsoft-zeros.tistory.com/152
반응형
'VB.NET Programming' 카테고리의 다른 글
[VBNET] [WMI] 네트워크 IP 및 Subnet, Gateway Set (0) | 2020.03.02 |
---|---|
[VBNET] [WMI] 네트워크 IP 및 Subnet, Gateway 얻어오기 (0) | 2020.02.27 |
[VBNET] Provider - 로컬 네트워크에 사용 가능한 OLEDB 공급자 (0) | 2020.02.23 |
[VBNET] Redim 문 과 Redim Preserve 문 정의와 차이 (0) | 2020.02.21 |
[VBNET] 윈도우 폼(Window Form) - Control, Shift, Alt 키 조합 키 입력 받기(단축키) (0) | 2020.02.20 |