1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
//http://dotnet-snippets.de/dns/excel-prozess-schliessen-SID1153.aspx
// use user32.dll
[System.Runtime.InteropServices.DllImport("user32.DLL")]
public static extern IntPtr GetWindowThreadProcessId(int hWnd, ref IntPtr lpdwProcessID);
/// <summary>
/// kills an Excel application
/// </summary>
/// <param name="myExcelApp">The application to kill</param>
public static void killExcelInstanceById(ref Microsoft.Office.Interop.Excel.Application myExcelApp)
{
IntPtr processID = new IntPtr() ;
//API Funktion, out val: processId
GetWindowThreadProcessId(myExcelApp.Hwnd, ref processID);
System.Diagnostics.Process myExcelProcess = System.Diagnostics.Process.GetProcessById(processID.ToInt32());
// kill it!
myExcelProcess.Kill();
}
|