저는 C# .Net 응용 프로그램에서 Excel을 실행 중이며 프로세스를 종료하는 데 문제가 있습니다. Excel 프로세스가 C# 프로그램에서 올바르게 종료되도록하려면 어떻게해야합니까?C# .Net 응용 프로그램에서 시작한 Excel 프로세스를 중지하는 방법은 무엇입니까?
답변
이 시도 :
foreach (System.Diagnostics.Process process in System.Diagnostics.Process.GetProcessesByName("EXCEL"))
{
if (process.MainModule.ModuleName.ToUpper().Equals("EXCEL.EXE"))
{
process.Kill();
break;
}
}
나는 당신의 문제가 종료에서 엑셀 과정을 방지 COM 참조 매달려에 의한 것이 약 99 % 확신합니다. 엑셀은 특히 처리하기 쉽고 명시 적으로 종료 할 수있는 방법을 제공하지 않고 COM 참조를 투명하게 생성하는 경향이 있으므로 특히이 문제가 발생하기 쉽습니다.
PIA는 명시 적으로 수행하지 않으면 정리하지 않는 기본 COM 개체에 대한 고유 한 참조 집합을 만들어이 문제를 복합화합니다. PIA를 통해 Excel로 작업하는 것은 바로 이러한 이유 때문에 상당히 까다로운 작업입니다.
Application.Quit()
는 참조가 모두 제대로 정리하는 경우 는 프로세스를 종료합니다 (IIRC이 그것이라고 것입니다). 즉, Excel 프로세스에 대한 COM 참조를 보유하고있는 모든 항목의 수명주기를 신중하게 관리하고 모든 COM 참조가 제대로 정리되었는지 확인해야합니다.
사용자의 필요에 따라 COM Interop이없는 Excel 호환 구성 요소를 제공하는 을 사용할 수 있습니다 (인스턴스가 없거나 성능이 뛰어나며 Excel의 설치 여부 또는 설치된 Excel 버전에 대해 걱정할 필요가 없음).).
당신이하는 SpreadsheetGear의 윈도우 컨트롤 및 샘플 here 양식에 대한 자세한 내용은, C# 및 VB 소스 here 라이브 ASP.NET 샘플을보고, 당신이 그것을 자신을 시도하려는 경우 무료 평가판 here을 다운로드 할 수 있습니다.
면책 조항 : 나는하는 SpreadsheetGear LLC는
플러그에 대한 약한 구실. – jwg
Application app = new Application();
...
EndTask((IntPtr)app.Hwnd, true, true);
[DllImport("user32.dll")]
public static extern bool EndTask(IntPtr hwnd, bool shutdown, bool force);
- 1. 프로세스를 시작한 다음 즉시 일시 중지하는 방법은 무엇입니까?
- 2. .BAT 파일에서 프로세스를 중지하는 방법은 무엇입니까?
- 3. 웹 응용 프로그램에서 사용자가 시작한 백그라운드 프로세스
- 4. C# Console을 통해 Excel 응용 프로그램에서 열을 반복하는 방법은 무엇입니까?
- 5. .NET 응용 프로그램에서 리본을 사용하는 방법은 무엇입니까?
- 6. C 프로세스를 중지하는 동안 나타나는 팝업 창이
- 7. C++ 응용 프로그램에서 .net webservice를 사용하는 방법은 무엇입니까?
- 8. Winform 응용 프로그램에서 Global.asax를 만드는 방법은 무엇입니까? - C# /. NET
- 9. 비 관리 C++ 응용 프로그램에서 .Net 컨트롤을 호스팅하는 방법은 무엇입니까?
- 10. .net 응용 프로그램에서 직접 시트 데이터를 Excel로 만드는 방법은 무엇입니까?
- 11. winform 응용 프로그램에서 Excel 프로세스를 실행할 때 Excel 파일 열기를 차단하십시오.
- 12. android 응용 프로그램에서 네트워크 연결을 사용/사용 중지하는 방법은 무엇입니까?
- 13. vs2010의 Windows 양식 응용 프로그램에서 제거 프로세스를 만드는 방법은 무엇입니까?
- 14. Windows 응용 프로그램에서 Linux 프로세스를 생성하는 방법은 무엇입니까?
- 15. asp.net 응용 프로그램에서 프로세스를 실행하려고합니다.
- 16. C# 프로세스를 죽이는 방법은 무엇입니까?
- 17. .net 응용 프로그램에서 NoVNC 통합
- 18. Java 응용 프로그램에서 시작한 창 응용 프로그램 숨기기?
- 19. .Net 응용 프로그램에서 여러 Excel 인스턴스를 제어하는 좋은 예가 있습니까?
- 20. .net 응용 프로그램에서 xCode 사용
- 21. 시작한 후 C# .NET 응용 프로그램이 즉시 충돌 함
- 22. Perl 모듈 빌드 프로세스를 중지하는 올바른 방법은 무엇입니까?
- 23. MSBuild 프로세스를 종료/중단/종료/중지/중지하는 방법은 무엇입니까?
- 24. MSI 기반의 설치 제거 중에 실행중인 프로세스를 중지하는 방법은 무엇입니까?
- 25. NStimer 이벤트를 중지하는 방법은 무엇입니까?
- 26. .net 응용 프로그램에서 원시 메모리 누수를 찾는 방법은 무엇입니까?
- 27. .NET 응용 프로그램에서 보고서 디자이너를 통합하는 가장 좋은 방법은 무엇입니까?
- 28. OSX에서 boxeeservice 프로세스를 중지하는 방법?
- 29. C# .net 응용 프로그램에서 스캐너를 사용하는 방법
- 30. C# .NET 응용 프로그램에서 WHMCS API 사용
이 상당히 unhygenic하고 엑셀 인스턴스가 여전히 열려있는 파일이있는 경우 문제를 일으킬 수 있습니다 소유하고 있습니다. 또한 프로그램에서 시작하지 않은 프로그램 (예 : 사용자가 열어 본 프로그램)을 비롯하여 컴퓨터에서 Excel의 모든 인스턴스를 종료합니다. 작업을 실행하는 사용자의 권한에 따라 다른 사용자에게 속한 Excel 프로세스도 종료 될 수 있습니다 (터미널 서비스 또는 Citrix 서버에서 실행하는 경우). – ConcernedOfTunbridgeWells
@ConcernedOfTunbridgeWells - 네, 아무런 질문없이 엑셀 파일을 열어도 닫힙니다. 그냥 Lalit Dhake의 질문에 대답 해주세요. –