我在代码中实例化了一个对象
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
最后我想杀掉进程中的Excel  代码如下
//我们导出Excel的时候会在进程中调用Excel进程,导出之后必须强制杀掉进程            
            try
            {
                if (xlApp != null)
                {
                    int lpdwProcessId;
                    GetWindowThreadProcessId(new IntPtr(xlApp.Hwnd), out lpdwProcessId);
                    System.Diagnostics.Process.GetProcessById(lpdwProcessId).Kill();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Delete Excel Process Error:" + ex.Message);
            } 
我代码是从网上找的,这个GetWindowThreadProcessId(new IntPtr(xlApp.Hwnd), out lpdwProcessId);方法哪位能帮我看看啊? 我不知道这个方法该如何实现。。

解决方案 »

  1.   

    Process.GetProcessesByName("excel.exe").Id 即可。
      

  2.   

    自己找到这个方法的定义了
    [DllImport("User32.dll", CharSet = CharSet.Auto)]
            public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
      

  3.   


    这个也可以,如果你想找一个api的用法,告诉你一个简单的技巧,在google输入 "api函数名 dllimport extern using system"这样的组合,一定能找到代码,后面4个单词足以过滤掉api函数和C#代码无关的网页。