爲了找出默認的電子郵件客戶端是什麼,我一遍又一遍地找到相同的信息:查看HKLM\Software\Clients\Mail
中的默認字符串。 (例如,見這related question)默認電子郵件客戶端在註冊表中如何以及在哪裏設置?
然而,這似乎不是適用於所有的操作系統和/或情況: 我運行Win7的64位兩臺機器,我們姑且稱之爲A和B. A有Outlook 2010的64位和雷鳥3 32bit安裝。 B安裝了Outlook 2007 32bit和Thunderbird 3 32bit。 A和B都將Thunderbird設置爲其默認郵件客戶端。
然而,註冊表的狀態並不如我預期的那樣:
在機器A,既HKLM\Software\Clients\Mail
和HKLM\Software\Wow6432Node\Clients\Mail
有一個空的字符串作爲默認字符串值。 在B上,這兩個鍵都包含Microsoft Outlook
作爲默認字符串值,這顯然是錯誤的。 進一步調查顯示,兩臺機器上的正確值似乎都寫入HKCU\Software\Clients\Mail
。
我希望我的應用程序能夠正確處理所有情況。它有道理,Win7現在似乎爲每個用戶保留一個單獨的默認郵件客戶端,但看起來相當不一致。當查看指向HKLM\Software\Clients\Mail
的大量信息時,看起來很明顯,以前版本的Windows處理這種情況的方式不同,並且始終寫入該位置。那麼這是什麼時候改變的?機器B上的錯誤值有什麼含義?如果沒有,爲什麼它首先寫在那裏?同一臺計算機上的64位和32位電子郵件客戶端的組合是否改變了?
如果有人會分享可靠的信息或解釋此主題的文檔,我將非常感激!也許有一個Win32 API函數返回正確的值?
「Win7現在似乎爲每個用戶保存一個單獨的默認郵件客戶端」 - >是; 「以前版本的Windows處理這個不同」 - >是的,而我認爲它已經在Vista的情況下 – 2010-10-15 08:00:58