Windows 7 のタスクバーのコンテキスト メニューに表示されるアプリケーション名を変更したいと考えています。
現在、私のアプリケーションにはアプリケーション名が表示されています。マイクロソフト製品のようなものに変更したい
私のアプリケーションは Prism フレームワークを使用しており、表示するアプリケーション名はモジュールのタイプによって決まります。そこで、アプリケーション名を動的に設定したいと思います。
vshost32.exe
デバッガーで実行しているため、表示されています。これは、デバッガーが使用するホスト プロセスの名前にすぎず、変更することはできません。まあ、できるとは思いますが、それはあなたがやりたいことではありません。実行可能ファイルで使用される名前を変更したい。
ユーザーが行うように、デバッグなしで実行すると、タスクバー アプリのポップアップに表示されるアプリケーション名は、プロジェクト構成の [アプリケーション] ページで指定されたアセンブリ名によって決定されます。それで、それをあなたが望むものに変更するだけで、それ以上何もする必要はありません.
Windows API コード パック ライブラリを介してそのプロパティを設定するマネージド アプリでは、名前空間で見つけることができるオブジェクトAppID
の一部であるプロパティを使用できます。そのプロパティを使用して、特定のアプリケーションのアプリケーション ID を設定および取得できます。Taskbar
Microsoft.WindowsAPICodePack.Shell.Taskbar
手動で設定することもできます (パックを使用しない場合)。ID を使用して name 設定を設定するだけです。
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");
}
完全な例については、こちらを参照してください。