![]() |
1
5
|
![]() |
2
2
一个进程很可能包含多个打开的工作簿。尤其是因为Excel喜欢在从资源管理器、Outlook等打开文件时重新使用现有实例,而不是为每个工作簿创建新的进程。 更不用说取消进程将要求您1)关闭主窗口,该窗口将提示是否有未保存的更改;2)强制取消进程,这可能导致Excel在下次启动时显示其崩溃恢复选项。 最好的做法是使用Excel COM API关闭工作簿。你可以使用 Marshal.GetActiveObject 方法获取正在运行的Excel实例,然后参考Office Developer参考以获取有关如何在不提示的情况下关闭特定命名工作簿的详细信息。 |
![]() |
3
1
这个
否则,您可以使用Office COM类与Excel对话。这也允许您关闭打开的工作簿。 |
![]() |
4
0
手头上没有这样的代码。但一般来说,在过去,我会使用几个API调用来实现这一点。首先,您将得到窗口句柄(hwnd),然后将sendmessage api调用与wm_Close参数一起使用。 这就是我所能记得的一切——我已经有10年没有做过类似的事情了,所以这个领域从那时起可能已经改变了:) |