2016-02-22 26 views
-1

我想知道如何測試,看看某個exe是否位於用戶計算機上?例如,如果我想找到我的Skype將運行這樣的功能:(c#)如何檢查某個exe是否位於用戶計算機上?

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; 
} 

^那只是一個例子試圖解釋什麼即時試圖做^

我到處找一個解決方案,找不到一個。

+0

嘗試此頁「如何遍歷導演」 https://msdn.microsoft.com/zh-cn/ -us/library/bb513869.aspx –

+5

如果存在這樣的功能,一旦你有了這個答案,你會做什麼?而不是在這裏採取零碎的做法,給我們一個關於你想達到什麼目標的大局。可能有一個解決方案不以「在用戶的計算機上查找exe」開頭。 –

回答

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

try this link 你可以根據擴展名來篩選結果,甚至可以按照文件名過濾 。 例如:Directory.GetFiles(dirpath).Where(file => file.EndsWith(「。ext」))

相關問題