첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

TestProject.zip
0.00MB

▶ ProcessHelper.cs

using System;
using System.Diagnostics;
using System.IO;

namespace TestProject
{
    /// <summary>
    /// 프로세스 헬퍼
    /// </summary>
    public static class ProcessHelper
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Static
        //////////////////////////////////////////////////////////////////////////////// Public

        #region 프로세스 죽이기 - KillProcess(processID)

        /// <summary>
        /// 프로세스 죽이기
        /// </summary>
        /// <param name="processID">프로세스 ID</param>
        /// <returns>처리 결과</returns>
        public static bool KillProcess(int processID)
        {
            if(processID <= 0)
            {
                return false;
            }

            try
            {
                Process.GetProcessById(processID).Kill();

                return true;
            }
            catch
            {
            }

            return false;
        }

        #endregion
        #region 프로세스 죽이기 - KillProcess(filePath)

        /// <summary>
        /// 프로세스 죽이기
        /// </summary>
        /// <param name="filePath">파일 경로</param>
        /// <returns>처리 결과</returns>
        public static bool KillProcess(string filePath)
        {
            if(string.IsNullOrWhiteSpace(filePath))
            {
                return false;
            }

            bool result = false;

            try
            {
                string processName = Path.GetFileNameWithoutExtension(filePath);

                foreach(Process process in Process.GetProcessesByName(processName))
                {
                    try
                    {
                        if
                        (
                            process.MainModule != null          &&
                            process.MainModule.FileName != null &&
                            string.Compare(process.MainModule.FileName, filePath, true) == 0
                        )
                        {
                            process.Kill();

                            result = true;
                        }
                    }
                    catch
                    {
                    }
                }
            }
            catch
            {
            }

            return result;
        }

        #endregion
        #region 디렉토리 내 프로세스 죽이기 - KillProcessInDirectory(directoryPath)

        /// <summary>
        /// 디렉토리 내 프로세스 죽이기
        /// </summary>
        /// <param name="directoryPath">디렉토리 경로</param>
        /// <returns>처리 결과</returns>
        public static bool KillProcessInDirectory(string directoryPath)
        {
            if(string.IsNullOrWhiteSpace(directoryPath))
            {
                return false;
            }

            directoryPath = directoryPath.TrimEnd('\\') + "\\";

            bool result = false;

            try
            {
                foreach(Process process in Process.GetProcesses())
                {
                    try
                    {
                        if
                        (
                            process.MainModule != null          &&
                            process.MainModule.FileName != null &&
                            process.MainModule.FileName.StartsWith(directoryPath, StringComparison.OrdinalIgnoreCase)
                        )
                        {
                            process.Kill();

                            result = true;
                        }
                    }
                    catch
                    {
                    }
                }
            }
            catch
            {
            }

            return result;
        }

        #endregion
    }
}

 

728x90

 

▶ Program.cs

namespace TestProject
{
    /// <summary>
    /// 프로그램
    /// </summary>
    class Program
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Static
        //////////////////////////////////////////////////////////////////////////////// Private

        #region 프로그램 시작하기 - Main()

        /// <summary>
        /// 프로그램 시작하기
        /// </summary>
        private static void Main()
        {
            string directoryPath = @"D:\ARCA.HOME\ARCA.BINARY.RELEASE";

            ProcessHelper.KillProcessInDirectory(directoryPath);
        }

        #endregion
    }
}
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요