2016-01-20 41 views
2

如何在運行時在右鍵菜單中爲我的程序任務欄按鈕更改標題?我的意思是這裏用紅色圈起來的文字。Windows任務欄右鍵菜單中的標題

enter image description here

的標題似乎是taken from the assembly title。我需要從代碼動態地在處更改標題。我有一個EXE,用戶可以「看到」許多不同的應用程序 - 它在運行時讀取數據文件,然後大量定製其外觀,包括窗口標題。我需要在這個右鍵菜單中自定義標題。沒有任何一個標題可以涵蓋所有內容。如果有必要,我願意考慮對Windows API進行P/Invoke調用。

這是一個WinForms的.Net程序4.5.2,截圖是Windows 7的

+0

請參見[在運行時更改.Net程序集名稱](http://stackoverflow.com/q/15504870/719186)。 – LarsTech

+0

@LarsTech我看了看,說它不可能動態地改變程序集名稱。但我希望可以通過某種方式更改上下文菜單中的菜單標題,也許可以通過Windows API中的某些東西(它控制任務欄,而不是AFAIK處理.Net概念的程序集) – MarkJ

+0

檢查此內容如果它有幫助,我相信如果有意願有一種方式http://stackoverflow.com/questions/1948014/how-to-handle-form-caption-right-click – MethodMan

回答

1

我有一個爲你解決,但不知道它會爲你工作

我會做一些假設驅動我回家的解決方案

  1. 它是使用Visual Studio的
  2. 建立了一個WinForms項目您還沒有更改原始的Program.cs文件
  3. 個您的所有組件屬性在AssembyInfo.cs

Program.cs中通常如下所示

using System; 
using System.Windows.Forms; 

static class Program { 
    [STAThread] 
    static void Main() { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new Form1()); 
    } 
} 

一種方法來對付它是建立你的應用程序作爲Class Library SAN的Program.cs,姑且稱之爲它App.dll。然後將Program.csAssemblyInfo.cs(僅限相關部分)的代碼合併到一個文件中,我們將其稱爲App.cs。您應該使用單獨的腳本或通過App.cs本身自動生成App.cs 現在生成App.cs,並引用App.dll生成App.exe。這個App.exe應該像你當前的可執行文件一樣工作。

一旦所有這一切都建立起來了,你就可以看到我們要去的地方了。

現在,當你開始App.exe的並讀取配置進行更改,以不同的AssemblyTitle你應該自動生成App.cs像下面

[assembly: AssemblyTitle("MyAssembly")] 

和產生的App-Flavor1.exe和產卵該過程並退出App.exe

+0

+1因爲它很有創意而且應該可以工作。儘管在用戶機器上運行時動態編譯和構建EXE可能對我們來說是過度的。如果沒有人提出更好的答案,我會接受。 – MarkJ

+0

好我接受這個答案!聽起來像是可以工作的,沒有人提供了答案...... – MarkJ