(c#)如何检查某个exe是否位于用户计算机上?

时间:2016-02-22 06:57:59

标签: c#

我想知道我将如何测试并查看某个exe是否位于用户计算机上?例如,如果我想找到Skype,我会运行这样的函数:

if(checkForSkypeonUsrcomputer("Skype.exe")==true){
    //Script detects skype.exe on users computer 
} else {
    //Script detects skype.exe is not on users computer 
}

checkForSkypeonUsrcomputer(string exetype)
{
    CheckForExeOnUsersComputer(exetype);
    return TrueOrFalse;
}

^这只是一个例子,试图解释我想做什么^

我到处寻找解决方案而找不到解决方案。

2 个答案:

答案 0 :(得分:1)

尝试在"卸载"下的注册表中找到该应用。键。 HKLM \软件\微软\的Windows \ CurrentVersion \卸载 此处列出了可以卸载的所有应用程序,您可以按其显示名称找到它们:

private string FindByDisplayName(RegistryKey parentKey, string name)
         {
             string[] nameList = parentKey.GetSubKeyNames();
             for (int i = 0; i < nameList.Length; i++)
             {
                 RegistryKey regKey =  parentKey.OpenSubKey(nameList[i]);
                 try
                 {
                     if (regKey.GetValue("DisplayName").ToString() == name)
                     {
                         return regKey.GetValue("InstallLocation").ToString();
                     }
                 }
                 catch { }
             }
             return "";
         }

请告诉我这是否适合您:)

答案 1 :(得分:1)

try this link 你可以根据扩展来过滤结果,甚至你也可以根据文件名进行过滤 。 例如:Directory.GetFiles(dirpath).Where(file =&gt; file.EndsWith(“。ext”))