Program/VB, MS-SQL

프로세스 체크 소스

훈이아제 2013. 9. 23. 11:09

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