对于报告,我创建了一个Excel应用程序,将一些数据导出到该应用程序,并使其对用户可见。
public void MyMethod()
{
Excel.Application excelApp = new Excel.Application();
object misValue = System.Reflection.Missing.Value;
Excel.Workbook workBook = excelApp.Workbooks.Add(misValue);
Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Worksheets.get_Item(1);
Excel.Range range;
//my export code here..
//at last excel application is shown for user
excelApp.Visible = true;
}
当用户单击“关闭”按钮时,会出现一个对话框,其中包含[“保存”,“不保存”和“取消”]。在任何情况下(保存或不保存),窗口关闭,但EXCEL.EXE过程像这个问题中的图片一样生效:Like this picture ,因为我还没有关闭它。
如何定义用户是否关闭已查看的Excel窗口?如果是,那么我将退出我创建的excel应用程序。
编辑:我需要“退出事件”之类的内容。要定义用户关闭窗口,请退出应用程序。
答案 0 :(得分:0)
您可能正在使用未正确发布的COM对象
Worksheets sheets = excelApp.Worksheets;
Worksheet sheet = sheets.Open(...);
Marshal.ReleaseComObject(sheets);
Marshal.ReleaseComObject(sheet);
答案 1 :(得分:0)
对不起,我误解了这个问题......
<强>旧:强> 检查窗口是否存在
[DllImport("user32.dll", CharSet=CharSet.Auto, ExactSpelling=true)]
...
while(true)
{
IntPtr hWnd = (IntPtr)FindWindow(windowName, null);
public static extern bool IsWindow(IntPtr hWnd);
}
App.Close()