2012-01-11 116 views
0

这里的场景: -
我有两个应用程序 - 一个在C#中,另一个在VC++中。
用C#编写的应用程序是主要应用程序,并在button click上使VC++应用程序在C#应用程序中的panel内运行。它正在成功运行。
但是,我如何检测VC++应用程序是否已完成执行。尽管我能够看到它已经完成执行,但是当我尝试使用processname.HasExited技术在VC++过程完成时合并其他一些任务以执行操作时,我无法完成此操作。即使
processname.Exited += new EventHandler(processname_Exited);似乎没有工作。
无论如何告诉我如何解决这个问题?如何检测一个进程是否已经完成执行

谢谢。

EDIT#1:
processnameSystem.Diagnostic.Process对象。

+0

文档说“只有当EnableRaisingEvents属性的值为** true **时才会发生此事件。”你是否记得将'EnableRaisingEvents'设置为'true'?如果你提到'processname'是一个'System.Diagnostic.Process'对象,它将会有很大的帮助。我不得不去找出你在说什么。 – 2012-01-12 01:07:54

+0

@RaymondChen是的,它是一个'System.Diagnostic.Process'对象。对不起,我忘了提到这一点。是的,我已将“EnableRaisingEvents”属性的值设置为“true”。但它仍然没有工作。 – OutOfBoundsException 2012-01-12 17:17:03

+0

这个项目的声音并没有真正退出。与任务经理核对一下:它是否还在附近? – 2012-01-13 12:01:30

回答

0

我会推荐你​​通过在VC++应用程序中使用PostMessage()API发送一个自定义消息(通过WM_QUIT事件)来将客户端应用程序(这里是VC++应用程序)的'退出'通知给父应用程序(这里是C#应用程序)。我不确定如何在C#父应用程序中接收此消息。

相关问题