2012-10-03 140 views
0

我想更改Windows 7任務欄上下文菜單中顯示的應用程序名稱。更改Win7任務欄中顯示的應用程序名稱

enter image description here

我的應用程序了目前顯示我的應用程序名稱。我想將其更改爲類似微軟的產品確實

enter image description here

我的應用程序使用棱鏡框架,我想表明將在模塊的類型決定了應用程序的名稱。所以我想動態地設置應用程序名稱。

+0

告訴我你有什麼在你的'Assembly.cs'請。 –

+1

您的應用程序或您的跳轉任務? – Patrick

回答

8

您正在看到vshost32.exe,因爲您正在調試器下運行。這只是調試器使用的主機進程的名稱,您無法更改該名稱。好吧,我想你可以,但這不是你想要做的。您想更改可執行文件使用的名稱。

當您在沒有調試的情況下運行時,您的用戶將會在任務欄應用程序彈出窗口中顯示的應用程序名稱由項目配置的應用程序頁面中指定的程序集名稱確定。所以,只要將它改爲任何你想要的,沒有什麼可做的了。

enter image description here

enter image description here

+0

我很喜歡它,我想動態地設置它。我沒有在我的問題中解釋過編輯過。 – Mohit

+0

哦,這是一個完全不同的問題。那麼,我想我浪費了時間製作所有那些漂亮的截圖。 –

+0

對不起,浪費你的時間。 – Mohit

1

隨着你設置通過Windows API代碼包庫屬性,可以使用AppID屬性,它是Taskbar對象,你可以在Microsoft.WindowsAPICodePack.Shell.Taskbar命名空間中找到的一部分來管理應用程序。使用該屬性,您可以設置並獲取給定應用程序的應用程序ID。

您也可以手動設置它(如果不使用包)。剛剛成立的名字與它設定的ID:

void SetAppID(HWND hWnd, int iAppID) 
{ 
    IPropertyStore *pps; 
    HRESULT hr = SHGetPropertyStoreForWindow(hWnd, IID_PPV_ARGS(&pps)); 
    if (SUCCEEDED(hr)) 
    { 
     PROPVARIANT pv; 
     if (iAppID >= 0) 
     { 
      hr = InitPropVariantFromString(c_rgszAppID[iAppID], &pv); 
     } 
     else 
     { 
      PropVariantInit(&pv); 
     } 
     if (SUCCEEDED(hr)) 
     { 
      hr = pps->SetValue(PKEY_AppUserModel_ID, pv); 
      PropVariantClear(&pv); 
     } 
     pps->Release(); 
    } 
} 

,然後調用它像:

private static void SetWindowAppId(string appId) 
{ 
    Microsoft.WindowsAPICodePack.Shell.ShellNativeMethods.SetWindowAppId 
     (OwnerHandle, "the name you want to display here"); 
} 

一個完整的示例,請參見here

相關問題