프로세스 체크 소스
VB.net으로 TASK MANAGER 생성시 사용하기 위하여 생성한 프로그램 소스이다.
TASK Manager 제작시 유용하게 사용가능하도록 하였다.
입력은 TASK의 이름과 해당 TASK의 관리 flag를 입력 받게 하였다.
Private Sub CheckProcess(ByVal strName As String, ByVal iFlag As Integer)
On Error GoTo WMIError
Dim bFlag As Boolean
bFlag = False
' -1이면 무조건 죽이기
' 0이면 하나만 살리고 죽이기
' 1이면 체크만 하기.
m_strPName = strName.Trim
m_iRun = 0
m_DateRun = Nothing
Dim sQuery As String
sQuery = "SELECT * FROM win32_process where name='" & m_strPName & ".exe' "
Dim oWinmg As Object, oExQuery As Object, oProcess
oWinmg= GetObject("winmgmts:") ' 해당 서비스 가져오기
On Error GoTo 0
oExQuery = oWinmg.ExecQuery(sQuery.ToString()) ' 실행
'oExQuery = oWinmg.ExecQuery("SELECT * FROM win32_process where name='task1.exe'")
'oExQuery = oWinmg.ExecQuery("SELECT * FROM win32_process ")
If oExQuery .Count > 0 Then 'task1.exe 이 새성된다.
For Each oProcess In oExQuery ' 각 결과값.
' flag가 True가 되면 강제로 죽인다.
If bFlag Or (iFlag = -1) Then
Shell("tskill " & oProcess.processid, vbHide) '두번째 것부터는 죽임..
m_iRun = 0
End If
bFlag = True
m_iRun = 1
Next
Else
If iFlag = 0 Then
Shell("cmd.exe /c " & m_strPName & ".exe", vbHide) '해당 프로그램 살리기
End If
End If
WMIError:
End Sub