2012-09-03 184 views
0

我剛剛在C#中使用Visual Basic 2010編寫了一個應用程序,花了我很長一段時間,因爲我對C#有一點經驗,但是經過很多學習,到目前爲止我似乎已經掌握了很多東西,應用程序將允許用戶簡單地右鍵單擊任何圖像類型,這將打開資源管理器上下文菜單,並會出現一個新項目,「上傳到網站」。有了這個,我希望它與我的應用程序(通過傳遞一個命令?)進行通信,然後運行我用WebClient UploadClass編寫的函數。資源管理器上下文菜單

我遇到的唯一問題是如何實際做到這一點,我想下注冊表的關鍵路線,我已經做了一些廣泛的研究,並稱它對殼牌和第三方,我相信它是我想要做的最合適的選擇。我知道如何在C#中設置註冊表項,但是我很困惑的一件事是設置註冊表項的位置以及我如何使它們與我的應用程序進行通信。

我真的看着被指向正確的方向,我也有幾個問題要問。

當我實際設置密鑰時,我的應用程序存儲在哪裏?我不希望菜單損壞或缺少命令,我查看了主驅動器中的Program Files文件夾,但應用程序實際上並不存在,它使用隨Visual Studio 2010提供的OneClick安裝程序進行安裝。

最後,我怎樣才能讓我的應用程序理解的意見,例如,如果我通過:

C:\MyDir\MyProgram.exe /u "%1 

在哪裏/ u是用於上傳和%1文件位置的命令,我怎麼可以編寫我的應用程序理解它需要運行上傳功能時,它的命令?

任何幫助或想法將非常感激,謝謝!

編輯:我一直在尋找到讓事物的註冊表鍵側完成,我已經鑽研了註冊表,我已經決定使用第三方應用程序的安裝,因爲它只是給了我更多的空間來提供什麼我想做的,比如進一步擴展我的項目。我正在使用Inno設置編譯器來完成此操作,並且它使用了強大的工具來輕鬆設置一些註冊表值,我可以將其用於上下文菜單。

但是我目前發現很難理解註冊表。首先,我需要設置哪些關鍵字來將我的程序與.png,.gif等文件類型關聯?在他們的資源管理器上下文菜單中有一個簡單的條目「Upload with SoftwareName」是我所追求的。

謝謝!

回答

1

無論您使用哪種安裝程序,它都會知道應用程序的安裝位置,並應相應地創建註冊表值。至於命令行參數:您必須評估參數並調用相應的函數。有關介紹,請參閱here

+0

事情是應用程序是VS2010生成的「ClickOnce」應用程序之一,並且我個人對控制它的安裝位置和安裝位置沒有太多控制權。事實上,如果用戶具有運行程序所需的必要條件,那麼絕對不需要安裝,所以我有點困惑哈哈。感謝你的CLI參數,我會研究它們! –

2

首先,您需要爲資源管理器創建一個新的上下文菜單項。這可以通過在HKEY_CLASSES_ROOT中添加註冊表項來實現,具體取決於您希望應用程序出現在文件/文件夾上的哪個文件右鍵單擊。看看this的例子。

至於與您的程序進行通信,您將在註冊表中設置的密鑰將採用您在問題中顯示的格式。這將基本上用/ u filename參數打開你的程序。爲了在應用程序打開時讀取參數,您需要遍歷包含所有打開命令行的Environment.GetCommandLineArgs()。然後基於這些,你可以執行你想要的方法。

+0

謝謝我將會查看您提供的兩個鏈接! –

相關問題