2013-04-08 58 views
4

我編寫了一個應用程序來接受一個文件路徑(具有自定義擴展名的文件)作爲參數,然後對其進行一些處理。如何使用InstallShield添加Windows文件類型關聯?

這個想法是我可以將自定義文件與我安裝的可執行應用程序(通過安裝屏蔽安裝程序)相關聯(使用Windows功能)。

我希望能夠用自定義擴展雙擊我的文件,並將它傳遞給我的可執行文件進行處理。

不過,我得到的行爲是這樣的:

  • 如果我雙擊我的文件(與自定義擴展),它什麼都不做。
  • 如果我將文件拖放到我的可執行程序上,那麼它可以按預期工作。

所以有可能通過簡單地雙擊我的自定義文件來得到這個工作嗎?

我猜windows是試圖打開自定義文件使用可執行文件,這可能是不相同的傳遞它作爲參數?!

任何幫助表示讚賞。

感謝, KS

+1

您正在使用什麼安裝技術(MSI或InstallScript),以及您試圖將擴展程序與您的程序關聯在一起?你可能只是缺少一個'「%1」',但你的描述不足以讓我告訴。 – 2013-04-09 12:18:43

+0

嗨,我右鍵單擊該文件並將其與我的可執行文件關聯。 – Perplexed 2013-04-10 18:08:43

回答

4

無論你的安裝方法(InstallScript中,MSI等),你基本上需要創建一些HKEY_CLASSES_ROOT項。根據您的方法,可以採用不同的方法(例如,如果您遵循guidelines,則可以通過installshield創建MSI安裝程序,如果它檢測到存在問題,它也可以觸發您的應用程序的安裝修復。)

根需要,但:(我們會假裝您的擴展名爲.xyz)

  1. HKCR下創建一個名爲新鍵「名爲.xyz」(你可以看到許多人在這裏例如
  2. 在默認值,將數據設置爲某種類似「myapp.xyz」的名稱
  3. 創建一個新的HKCR密鑰命名爲「myapp.xyz」以匹配您在2中創建的內容
  4. 在默認值中,將數據設置爲描述性標籤。例如,「我的應用程序數據文件」
  5. 創建一個子項殼子(你可以在這裏設置的默認值設置爲「開」,那麼這將使得開放在瀏覽器中的默認操作)
  6. 創建一個名爲開放的子項
  7. 創建一個名爲命令
  8. 在設定值的命令鍵的默認值是子項「C:\路徑\到\ installfolder \ appname.exe」「%1」(注意在這種情況下所有的報價事)
  9. 您還可以在名爲DefaultIcon的「myapp.xyz」下創建一個子項,該子項指向將在探索中與您的擴展相關聯的圖標文件河

如果你使用installshield,上面的很多都是爲你完成的;儘管過去我不得不對它進行調整,以使它與具有多種文件格式的更復雜應用程序中的所需輸出相匹配。

+0

好吧,現在,註冊表中的所有內容都已設置,雙擊我的文件時收到以下錯誤:「該參數不正確。」有什麼建議麼? – Perplexed 2013-04-10 18:16:56

+0

它現在的作品:P除非我得到這個應用程序不在遠程應用程序列表中的jip。望着它...... – Perplexed 2013-04-10 19:57:44

+0

你在做這個遙控器嗎? http://technet.microsoft.com/en-us/library/cc753610.aspx – NGaida 2013-04-11 06:52:02

3

使用InstallShield 2013:

對於自定義文件類型

  1. 切換到 「安裝設計」 選項卡。
  2. 在左側的框架中,展開「組織」並選擇「組件」。
  3. 從組件列表中,展開主要exe文件的選項,然後展開「高級設置」並選擇「文件類型」。
  4. 右鍵單擊「擴展」並選擇「新擴展」。在沒有領先期限的情況下輸入擴展名。
  5. 您的擴展應該在創建時爲其自動添加了「動詞」「打開」。選擇那個。輸入「顯示名稱」,例如「&用MyApp打開」。輸入「參數」,例如「%1」(將文件名傳遞給引號中的exe以處理長文件名/空格。)
  6. 從列表中選擇新擴展名,然後鍵入「ProgID」。例如,「MyApp.Document」。

定義一個特定的圖標,以與類型(而不是隱式的exe圖標)相關聯:

  • 點擊 「的ProgID」 您添加(「MyApp的。文件「或其他)。點擊「圖標」字段,然後點擊出現的「...」按鈕。這將允許您瀏覽到一個圖標文件。
  • 一個「通用」文件類型

    如果文件類型不「屬於」你的應用程序獨佔,您可能希望你的應用程序添加到用於打開選項列表該類型,但不使其成爲默認程序,或更改默認圖標。以下是如何做到這一點...

    1. 切換到「安裝設計」選項卡,並按照說明自定義文件類型
    2. 在左側的框架中,展開「組織」並選擇「組件」。
    3. 從組件列表中,展開您的主要exe文件的選項,然後選擇「註冊表數據」。
    4. 在「目標計算機框架」中,右鍵單擊「HKEY_CLASSES_ROOT」並選擇「新建」...「密鑰」。將關鍵字命名爲您正在爲其定義關聯的文件擴展名(包括最前面的實例)。
    5. 右鍵單擊該新密鑰並選擇「新建」...「默認值」。然後,右鍵單擊該默認值,選擇「修改」。輸入ProgID作爲默認應用程序以打開此類型並指定圖標。您可能需要檢查註冊表以確定此值。例如,zip文件的標準默認值是「CompressedFolder」。搞清楚這個過程是最棘手的部分。
    6. 右鍵單擊該新密鑰並再次選擇「新建」...「密鑰」以創建子密鑰。命名子鍵「OpenWithProgids」。
    7. 右鍵單擊「OpenWithProgids」鍵並選擇「新建」...「字符串值」。將該值命名爲您定義爲默認值的ProgId。將此值保留爲「空」(「名稱」爲「值」)。
    8. 右鍵單擊「OpenWithProgids」鍵並再次選擇「新建」...「字符串值」。這次,當您按照自定義文件類型的說明進行操作時,請將您爲應用程序定義的ProgId的值命名爲。