2013-05-26 204 views
0

只是一个令我感兴趣的问题,我注意到现代安装程序(针对各种类型的程序)提醒您等到另一个安装完成后再运行自己。通知操作系统的安装

如何检查/通知其他安装人员?

使用C#或Python

回答

0

AFAIK有没有办法来 “找” 其他正在运行安装程序。至少不是每个系统和每个安装程序。唯一的好方法是使用支持Windows安装程序的安装程序(但也只能检查其他正在运行的Windows安装程序)。

一个可能的工作方式是使用安装程序的进程名称列表并检查其中一个是否正在运行。
找到答案的另一种方法this的问题是检查注册表项(1)或使用windows api(2)。但是这两种方式只能在windows上运行。

有关检查进程是否正在运行的方法,可以使用python模块psutil。其打印所有进程名的例子是:

import psutil 
for p in psutil.process_iter(): 
    print p.name 
+0

谢谢您的回答,所以要根据第二个链接(名为'2')我应该更新,如果我想其他的安装人员知道我该注册表值安装,他们不应该打断?顺便说一句,我只谈论窗户。 另一件事,从你的答案和它的链接,我怎样才能检查其他程序/安装程序(这是程序...)使用我想改变的文件?以及如何让其他程序知道我使用了特定的文件,而不应该“触摸”它。 –

+1

我无法回答所有这些问题,但我*认为*它应该可以简单地创建此注册表项(例如从Python标准库中的http://docs.python.org/2.7/library/_winreg.html) 。要检查文件是否在使用中,你也可以使用psutil(已经有一个问题:http://stackoverflow.com/q/11114492/2325172)。对于所有这些事情,我会建议搜索一个开源安装程序并查看它(例如https://github.com/jrsoftware/issrc,但它是用delphi编写的)。 – TobiMarg

相关问题