2016-02-07 60 views
0

我做我的應用程序的安裝程序如下(注意,該項目的安裝程序僅僅是一個Windows可執行文件(setup.exe),而不是一個MSI)試圖讓默認的Web瀏覽器路徑失敗在Windows 10

首先,我需要檢查是否有.htm.html文件類型的文件關聯。我did so already。然後,如果沒有關聯,我需要添加它們以便通過網絡瀏覽器打開。

爲了減小對用戶系統的影響,我想用用戶的默認網頁瀏覽器。問題是如何找到它的路徑?

所以我這樣做:

//Get default web browser path 
WCHAR wbuffPath[MAX_PATH] = {0}; 
DWORD dwszBuffPath = MAX_PATH; 
::AssocQueryStringW(0, ASSOCSTR_EXECUTABLE, L"http", L"open", wbuffPath, &dwszBuffPath); 

這似乎是工作,當我在Windows 10上運行它,除非我得到這個路徑(在默認情況下是邊緣瀏覽器):

Ç :\ WINDOWS \ system32 \ LaunchWinApp.exe

那麼我如何獲得參數的重置來啓動它呢?

回答

1

嘗試使用ASSOCSTR_COMMAND而不是ASSOCSTR_EXECUTABLE。通過使用ASSOCSTR_EXECUTABLE,你要求只是本身的可執行文件,這正是你回來的。 ASSOCSTR_COMMAND應該爲您提供可執行文件的整個命令行。

+0

哈。有趣。如果我這樣做,它只是給我'「C:\ WINDOWS \ system32 \ LaunchWinApp.exe」「%1」'。這就是他們在Windows 10中的做法。非常整潔!謝謝。 – c00000fd