Schon seit es das Feature in Windows gibt, benutze ich die Komponente TJumpTask.
Heute habe ich festgestellt, dass Apply nicht mehr funktioniert, eine
Exception wirft und somit keine Einträge mehr in die JumpList hinzugefügt werden.
Mein simpler Code:
Delphi-Quellcode:
var
aJLItem: TJumpTask;
begin
try
aJLItem := TJumpTask.Create;
aJLItem.Title := aCaption;
aJLItem.ApplicationPath := ParamStr(0);
aJLItem.Arguments := aArguments;
aJLItem.CustomCategory := '
Test-Cat';
aJumpList.JumpItems.Add(aJLItem);
aJumpList.Apply;
// <= Exception, siehe unten
except
end;
end;
Also bin ich auf die Suche gegangen. In der Prozedur Apply tritt die
Exception bei folgender Zeile auf:
CheckResult(cdl.AppendCategory(PWideChar(Categories[cnt]), oav));
Delphi-Quellcode:
class procedure TJumpList.CheckResult(ACode: HRESULT);
var
S:
string;
begin
if (
not SUCCEEDED(ACode))
then
begin
S := SysErrorMessage(Cardinal(ACode));
if S = '
'
then
FmtStr(S, '
Error %.8x', [ACode]);
raise Exception.Create(S);
end;
end;
Ich habe nie irgendetwas geändert. Weder an der Komponente, noch an meinem eigenen Code.
Die
Exception ist wenig aussagekräftig:
Zitat:
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt TestProjekt.exe ist eine
Exception der Klasse
Exception mit der Meldung 'Zugriff verweigert' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Was zur Hölle kann da los sein?