|
5
|
| Mike Rosenblum · 技术社区 · 16 年前 |
|
|
1
4
您所引用的答案可能适用于您的情况。据我所知,它基本上是说,如果您正在查看的进程是在不同的用户帐户下运行的,那么
现在您会说“现有的唯一Excel进程将在当前用户登录下创建。”但假设情况并非如此。假设有另一个Excel进程运行在同一个框中,在另一个用户帐户下(可能有一个进程是由其他人使用OLE Automation启动的,没有得到正确清理或挂起。)然后GetProcessByName将拾取它,但HasExit将失败。 因此,在调用OpenExcelProcessCount()方法之前,请添加一点日志记录,以转储从GetProcessByName(“Excel”)返回的所有进程的进程ID。然后根据任务管理器或您希望在您的帐户下运行的Excel进程数检查这些。如果有一个ID与“预期的”Excel流程不对应,则可能是罪魁祸首。 |
|
2
8
Bugs in System.Diagnostics.Process Class
|
|
|
3
4
8年后,.NET Process类中仍然存在此问题,这迫使您使用非托管代码检查受保护的进程。Giorgio的回答和博客帖子都非常好,尽管测试一个过程是否已经退出比他说的稍微复杂一些:)以下是对我有效的方法:
|
|
|
4
1
|
|
|
5
0
看起来问题少了。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |