2011-03-28 175 views
0

我想知道一个软件运行时的进程名称和它的公司名称,它的窗口标题名称 例如 一个名为FileZilla Client的添加/删除程序中的软件3.3.2.1 它的进程名是filezilla.exe 它的公司名称是FileZilla的项目 它的Windows标题名称是FileZilla的获取进程名称窗口标题名称和安装的软件名称

是有可能得到这些连接

回答

1

枚举所有的窗口与EnumWindows的,以获取其窗口的句柄(HWND)。

对于每个窗口,您可以: 使用GetWindowText获取其标题。 使用GetWindowThreadProcessId来获取窗口的进程ID。 使用OpenProcess获取进程的句柄。 使用GetModuleBaseName来获取exe的名称。

1

运行程序与“添加/删除程序”对话框之间的关联比较弱,要稍微说明一下。已安装的程序列表实际上是(un)安装程序的列表。而且,这些通常是脚本化的卸载程序。只有该脚本中的某个地方才是已安装文件的列表。没有标准的方式来访问这些脚本。因此,您无法确定卸载程序将删除哪些文件,因此无法关联正在运行的程序及其卸载程序。