WIN7,WIN8系统下将软件图标锁定在任务栏上,卸载软件后图标无法删除问题的解决方法

  笔者在前段时间遇见这样的问题,自己打的软件安装包,安装到WIN7或WIN8系统上然后运行软件,并将软件锁定到任务栏,卸载软件后发现锁定在任务栏上的图标仍然存在,笔者经过一番查询发现网上讲这方面的资料并不多,在经过几天的不懈努力下,终于找到解决办法,再此整理出本文,供遇到相同问题的童靴参考。


1. 安装WIN8SDK,在工程中加载#include <ShObjIdl.h>头文件。

2.在工程中加入 如下函数:
 void unpinShortcut(LPCWSTR path)
{
HRESULT hr = CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);
if (SUCCEEDED(hr))
{
IShellItem *pitem;
hr = SHCreateItemFromParsingName(path, 
NULL, 
IID_PPV_ARGS(&pitem));     
//
// Do setup work here to remove the link, including the unpinning
// of the item.
//
if (SUCCEEDED(hr))
{
IStartMenuPinnedList *pStartMenuPinnedList;
hr = CoCreateInstance(CLSID_StartMenuPin, 
NULL, 
CLSCTX_INPROC_SERVER, 
IID_PPV_ARGS(&pStartMenuPinnedList));
if (SUCCEEDED(hr))
{
hr = pStartMenuPinnedList->RemoveFromList(pitem);
pStartMenuPinnedList->Release();
}
pitem->Release();
}
else
wprintf(L"fail: %s\n", path);
}
CoUninitialize();
}
注意:函数参数所指的路径是exe文件的实际路径。
3. 在欲删除锁定图标的地方调用该接口。如:
const wchar_t STR[] = L"C:\\Program Files\\xxxxxx\\xxxxxxxx\\xxxxxxxx.exe"; 
        LPCWSTR userSTR = STR; 
unpinShortcut(userSTR);
就可以把锁定在任务栏上的软件图标删除。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值