Programing/C#
C# Excel Process Kill ( 프로세스 죽이기 )
꿀주세요
2022. 3. 12. 13:46
진짜 많이 검색해보고 나름대로 가장 심플하면서 확실한 방법을 찾은거같아서 글을 작성합니다.
그냥 Excel.EXE 프로세스를 죽이게 되면 다른 실행되있는 엑셀파일도 전부 날아가기때문에
엑셀의 PID(Process ID)를 획득 후 해당 ID에 대해서만 Kill하게 됩니다.
예제)
class Program { [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId); static void Main(string[] args) { Microsoft.Office.Interop.Excel.Application excel = null; Workbook workbook = null; Worksheet worksheet = null; uint processId = 0; excel = new Microsoft.Office.Interop.Excel.Application(); // 엑셀 내용 Start º º º º º // 엑셀 내용 End GetWindowThreadProcessId(new IntPtr(excel.Hwnd), out processId); //PID 획득 workbook .Save(); workbook.Close(Type.Missing, Type.Missing, Type.Missing); excel.Quit(); if (processId != 0) { System.Diagnostics.Process excelProcess = System.Diagnostics.Process.GetProcessById((int)processId); excelProcess.CloseMainWindow(); excelProcess.Refresh(); excelProcess.Kill(); } } } |