2013-05-07 35 views
4

我剛剛注意到,當我在我的計算機上查看.sln文件時,有些圖標有v7.1,有些圖標有v9圖標,有些圖標有v10圖標(取決於Visual Studio創建它們的版本)。看起來,Windows區分哪些文件會獲得哪些圖標,可能是通過某種「MIME類型」的文件來擴展文件。Windows如何知道用哪個程序打開文件?

如果兩個文件類型共享一個擴展名,我可以使用該功能來檢測用戶從默認MFC SaveAs對話框中選擇哪個文件類型?

+0

我認爲Visual Studio可能是一個特例 - 微軟有一些瘋狂的中介可執行文件,它計算版本並將.sln文件傳遞給相應的VS版本。這並不是說你不可能做你想問的事情,它可能比第一次看到的要少。 – aardvarkk 2013-05-07 21:19:16

+3

http://msdn.microsoft.com/en-us/library/cc144122%28VS.85%29.aspx – dlev 2013-05-07 21:19:36

+0

確認什麼dlev評論;它使用外殼擴展來顯示圖標。 – 2013-05-07 21:25:30

回答

2

在Visual Studio的情況下,.sln文件與微軟的Visual Studio版本相關的選擇,其中,我的機器上,下「安裝在C:\ Program Files文件\ Common Files文件\微軟共享\ MSEnv \ VSLauncher .exe「

此可執行文件必須解析解決方案文件以確定版本,然後向瀏覽器顯示正確的圖標。

在一般情況下,給定文件類型的文件關聯存在於註冊表中的HKEY_CLASSES_ROOT下。

但在你的情況,我認爲你只需要閱讀文件內容以確定它是哪一個。希望兩者之間有一些容易區分的東西。

+3

這將是一個外殼擴展in-proc COM服務器,而不是啓動器可執行文件,它向shell提供正確的圖標。但否則你的分析是準確的,我會說。 – 2013-05-07 22:54:41

相關問題