2012-01-21 143 views
0

我想扫描并获取我的计算机中的所有应用程序文件。
我知道如何获得它们,但我只想要可执行的应用程序(安装程序除外)。C#应用程序扫描

基本上,我想要的是蒸汽使用的相同功能。 例子: enter image description here

+0

你的意思是安装应用程序?或任何“可执行文件”存储在您的硬盘? –

+2

什么样的应用程序是不可执行的? –

+0

所有的exe都是可执行的,但我的意思是别的。当你运行它们和类似的东西时,会有exe文件关闭。 – Ron

回答

2

如果要获取系统上已安装应用程序的列表,可以查询注册表。一个例子参考Get installed applications in a system

+0

我知道如何获得已安装的应用程序。我敢肯定,蒸汽使用这种解决方案结合一些过滤器和更多的功能,但我无法找出他们是如何做到的...... – Ron

3

您可以在一个目录

DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Program Files"); 
    var exeFiles = dirInfo.EnumerateFiles("*.exe", SearchOption.AllDirectories); 

    foreach (var exeFile in exeFiles) 
    { 
     Console.WriteLine(exeFile); 
    } 

使用此代码来找到所有的EXE递归根据您的可执行文件的定义,你可能也做*.com*.bat等等等等,有没有尽管区分安装程序exe与常规exe文件的方法。您可能需要应用一些启发式方法

+0

正如我所说,我知道如何扫描应用程序。我不知道如何决定它是否是安装程序..无论如何,我不认为这是蒸汽使用的方式。 – Ron