Windows10 タスクバー DESKBAND(デスクバンド)の管理・削除のソースを表示
新しいページはコチラ
移動:
案内
,
検索
== '''概要''' == DESKBAND(デスクバンド)とは、タスクバーのクイック起動の一種として追加できるガジェット領域です。例えば、バッテリーを管理するアプリを追加すると以下のような大きなアイコンをタスクバーに追加することが出来ます。このときの領域を正式にはDESKBAND(デスクバンド)という呼称がつけられています。 [[ファイル:Windows10 Deskband Outline.png|400px|thumb|none|デスクバンドのイメージ]] 正直、知っている人は少ないと思う。これが割かし新しい技術でありながら、しょぼい仕組みになっていて、消せない無効領域を作り出したりすることがあります。ToolBarの表示・非表示を切り替えたりすると追加したアプリが管理できない状態に変化させたりして領域を壊したりもします。消せなくなったDESKBANDを消す方法をここでは、追及したいと思います。できればレジストリの仕組みまで究明できたらなと思います。 == '''デスクバンド一覧取得API''' == パソコンに導入されているDESKBANDの一覧を取得するAPIの使い方は以下の通りです。 <syntaxhighlight2 lang="cpp"> HRESULT hr; DWORD i, dwCount; DWORD dwBandId; IPersist* pPersist; IBandSite* pBandSite; LPOLESTR lpszClsid; CLSID clsid; CLSID clsidTarget = { 0x112143a6, 0x62c1, 0x4478, {0x9e, 0x8f, 0x87, 0x26, 0x99, 0x25, 0x5e, 0x2e} }; CoInitialize(NULL); hr = CoCreateInstance(CLSID_TrayBandSiteService, NULL, CLSCTX_LOCAL_SERVER, IID_PPV_ARGS(&pBandSite)); //DESKBAND COM インターフェイス初期化 IBandSite型ポインタのpBandSite準備 if (FAILED(hr)) { CoUninitialize(); return 0; //CLSID_TrayBandSiteServiceのDeskbandCOMインターフェイス初期化失敗なので0を返却、強制終了。 } dwCount = pBandSite->EnumBands(-1, &dwBandId); //pBandSiteのメンバ関数EnumBandsで第1引数に-1を設定して総数を取得する。 //dwCountにはDESKBANDの総数をDWORD値で取得。 for (i = 0; i < dwCount; i++) { //DWORD値を持つiを0から総数までカウントアップ pBandSite->EnumBands(i, &dwBandId); //i番目のDESKBANDのIDをdwBandIdに設定。 pBandSite->GetBandObject(dwBandId, IID_PPV_ARGS(&pPersist)); //IPersist型COMインタフェイスに0~総数番までのDESKBANDオブジェクトを順次格納 pPersist->GetClassID(&clsid); //GUIDをclsid型配列に取得 pPersist->Release(); if (IsEqualCLSID(clsid, clsidTarget)) {//clsidTargetに一致するDeskbandをリムーブする場合 StringFromCLSID(clsid, &lpszClsid); MessageBoxW(NULL, lpszClsid, L"OK", MB_OK); pBandSite->RemoveBand(dwBandId); CoTaskMemFree(lpszClsid); } } pBandSite->Release(); CoUninitialize(); </syntaxhighlight2>
Windows10 タスクバー DESKBAND(デスクバンド)の管理・削除
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ