uses
ComObj;
...
function
PinToTaskbar(
const
aFileName: TFileName;
const
UnPin:
Boolean
=
False
):
Boolean
;
const
Verbs:
array
[
Boolean
]
of
string
= (
'taskbarpin'
,
'taskbarunpin'
);
var
FDir, FName:
string
;
FShellApp : Variant;
begin
Result :=
False
;
if
FileExists(aFileName)
then
try
FDir := ExtractFileDir(aFileName);
FName := ExtractFileName(aFileName);
FShellApp := CreateOleObject(
'Shell.Application'
);
try
FShellApp
.
NameSpace(Variant(FDir)).Parsename(Variant(FName)).invokeverb(Variant(Verbs[UnPin]));
Result :=
True
;
except
on
E: Exception
do
begin
MessageDlg(Format(
'Une erreur %s avec le message : %s'
#
13
#
10
'est survenue'
, [E
.
ClassName, E
.
Message]), mtINFORMATION,
[mbOk],
0
);
end
;
end
;
finally
FShellApp := Unassigned;
end
;
end
;