2010-09-24 53 views
7

可能重複:
Filetype association with application (C#)C#Windows的 '打開方式>' 上下文菜單行爲

我正在寫一個C#的Windows應用程序可視化和修改 '.build' 文件(楠腳本)。我希望用戶能夠在Windows資源管理器中右鍵單擊.build文件並選擇「打開方式」選項以允許在我的應用程序中修改文件。

我的程序需要支持什麼才能使用此機制? 我的程序需要對Windows執行什麼操作才能啓用上下文菜單支持?

我想知道是否有人能指出我在這個問題上的好文章/教程的方向。

+0

請參閱http://stackoverflow.com/questions/222561/filetype-association-with-application-c – 2010-09-24 15:26:19

回答

4

的打開方式命令只傳遞文件作爲第一個參數傳遞給應用程序的路徑,所有您需要做的是

public static void Main(string[] args) 
{ 
    if(args[0] != null) 
    { 
     //args[0] contans a path to the file do whatever you need to do to display it 
    } 
    else 
    { 
     //Start normally 
    } 
} 

要全自動把你的程序在打開列表中,您將需要在HKEY_CLASSES_ROOT\YOUR_EXT\中添加一些註冊碼。 Here is a SO answer說怎麼做

或者你可以只是用手將它添加到打開列表的正常方式。

2

看看這個博客文章:Shell Extensions - Context Menu。它有一個簡單的「包裝器」代碼,用於某些COM掛鉤到Windows shell上下文菜單。將它放入GAC中,當您右鍵單擊時,您的菜單將作爲右鍵單擊上下文菜單的子菜單包含在內。

只要嚴格使用「打開方式...」使您的應用程序僅顯示可打開的文件,那會更容易一些。

  1. HKEY_CURRENT_USER \軟件\微軟\的Windows \ CurrentVersion \ Explorer中\ FileExts \ .FileExtension \ OpenWithList(安裝當前用戶)
  2. HKEY_CLASSES_ROOT \:這是由Windows使用註冊表項在註冊表中的兩個地方管理.FileExtension \ OpenWithList(爲所有用戶安裝)

使用註冊表編輯器查看一些現有的註冊表,然後使用註冊表類爲您想要的擴展名創建一個新的註冊表項。

相關問題