【发布时间】:2014-10-18 08:51:16
【问题描述】:
我有一个安装程序,可以安装 2 组同名但版本不同的应用程序。这些应用程序也必须固定到任务栏和开始菜单。
安装没有问题。问题是当我尝试卸载时。如果只安装了其中一个版本,则卸载顺利,图标从任务栏和开始菜单中删除。但是,如果两者都安装了,则第一个版本被卸载,第二个版本异常。我想这与两个具有相同名称的应用程序有关。
这是取消固定图标的代码,TLama 在这里帮助我解决了 Unpin app from taskbar, startmenu using Inno Setup
我知道我还没有包含 TLama 的完美代码。我仍在使用原始版本,
oShell := CreateOleObject('Shell.Application');
objFolder := oShell.Namespace(ExpandConstant('{localappdata}\My_Path'));
objFolderItem := objFolder.ParseName('MyApp.exe');
colVerbs := objFolderItem.Verbs();
for i := 0 to colverbs.count() do
begin
VerbName := lowercase(colverbs.item(i).name);
StringChangeEx(VerbName,'&','',true);
if (CompareText(Verbname, 'Pin to Start Menu') = 0) then
colverbs.item(i).DoIt
if (CompareText(Verbname, 'Pin to Taskbar') = 0) then
colverbs.item(i).DoIt
end;
我得到一个 Nil 指针异常
colVerbs := objFolderItem.Verbs();
这里有什么建议吗?
【问题讨论】: