2014-01-20 25 views
1

我有一個簡單的C#WPF應用程序,它可以幫助以我需要的方式重新命名批處理文件(以多種可選模式 - 添加前綴,刪除前綴,替換一些字符等)。將程序的特定功能添加到Windows上下文菜單

這一切都很好,但並不總是我想實際啓動應用程序,導航到文件夾等,所以我想添加一個程序的特定功能(刪除前綴)作爲Windows的快捷方式上下文菜單。

基本上,我想實現的是能夠在資源管理器中選擇多個文件,右鍵單擊它們,選擇「刪除前綴」並將它們重命名 - 如果它不是應用程序窗口沒有必要(雖然我可以忍受它被激活爲最小化到托盤)。我知道或多或少有關向註冊表(使用命令行參數)添加上下文菜單項,但我不確定它是否適用於我,因爲我只需要一個特定的功能,而不是整個應用程序。

任何想法我應該怎麼做?

回答

1

將命令行選項添加到只運行該函數的程序中。

覆蓋App.xaml.cs中的OnStartup並使用StartupEventArgs.Args獲取命令行參數。

或者如果你的函數不需要UI運行可以更換主,加Program.cs中添加

class Program 
{ 
    [STAThread] 
    public static void Main(string[] args) 
    { 
     if (runNormally(args)) 
     { 
      MainWindow mainWindow = new MainWindow(); 
      var app = new Application(); 
      app.Run(mainWindow); 
     } 
     else 
     { 
      MyFunction(args); 
     } 
    } 
} 

,使其通過命令行參數來運行正確的註冊上下文菜單功能。

+0

非常感謝你 - 我已經設法使它工作,然而與你的代碼指定的有點不同。我按照你的建議覆蓋了OnStartup,然後在一組給定的參數上使用我的函數。然而,它從那個'級別'是不可用的(可能不會在那個時候啓動?),我不得不在App.xaml.cs中編寫它們。幸運的是它簡短:) – Bartosz

相關問題