2014-03-05 69 views
-1

我想在使用高级安装程序安装新加载项之前检查进程是否正在运行。为了做到这一点,在自定义操作中,我选择了检测进程并放置了我想要停止的进程。我用AI_PROCESS_STATE运行或停止。但是现在我不知道该如何停止安装,如果它正在运行,或者至少显示一条消息,告知在继续之前关闭该安装。如果检测进程正在运行,请停止安装

有像显示消息框的选项,但如果我把它们,他​​们总是出现。我不知道如何让AI_PROCESS_STATE的值为Running。

回答

0

这里有几个问题:

一般的方式做,这是调用自定义操作DLL,它寻找的过程中,并设置一个安装财产,如果正在运行的进程,那么你可以失败的安装与类型19自定义操作和您自己的错误消息。运行一个进程并不会给你一个很好的方法来将值返回到安装中,这样你就可以显示一条错误消息。

但是,获取进程列表需要提升,默认情况下在安装开始时并未提升。

你确定你没有发明问题吗?用户为什么要关闭该过程?用户友好的方法是注册您的加载项,并告诉用户他们可能需要重新启动应用程序,然后才会显示新的加载项。

+0

问题在于,有时即使您关闭了powerpoint,它仍会继续在后台运行。所以,当我向客户发送更新时,他们会安装它们,但仍然在使用旧的加载项。所以我想确保当他们安装一个新的加载项时,他们正在使用新的加载项。 –

+0

海事组织,如果是我,我会说我决定使用新加载项时取决于我,并且在甚至允许安装开始之前强制用户关闭PowerPoint是不友好的。您需要提升以枚举进程的事实也需要用户在某个时候获得管理员权限。如果您希望将加载项提供给受限用户,请为每个用户安装它,并且不需要管理员权限。无论如何,我相信Office是基于用户的,而不是基于系统的。 – PhilDW

相关问题