728x90
반응형
728x170
▶ 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
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] 리소스 풀(Resource Pool) 사용하기 (0) | 2021.05.13 |
---|---|
[C#/COMMON] Visual Studio 확장 개발하기 (0) | 2021.05.13 |
[C#/COMMON] Process 클래스 : UWP 프로세스 여부 구하기 (0) | 2021.05.13 |
[C#/COMMON] 스푸핑(spoofing) 기법을 사용해 시스템 권한으로 프로세스 실행하기 (0) | 2021.05.12 |
[C#/COMMON] 윈도우즈 서비스에서 시스템 권한으로 프로세스 실행하기 (0) | 2021.05.12 |
[C#/COMMON] Process 클래스 : 메인 모듈 파일 경로 구하기 (0) | 2021.05.11 |
[C#/COMMON] 시간 계수기 사용하기 (0) | 2021.05.11 |
[C#/COMMON] 도메인명/사용자명 구하기 (0) | 2021.05.11 |
[C#/COMMON] UWP 앱 실행하기 (0) | 2021.05.10 |
[C#/COMMON] Process 클래스 : UWP 앱 실행하기 (0) | 2021.05.10 |
댓글을 달아 주세요