AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TJumpList ist recht eigenwillig

Ein Thema von Ydobon · begonnen am 26. Aug 2023 · letzter Beitrag vom 31. Aug 2023
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.066 Beiträge
 
Delphi 12 Athens
 
#11

AW: TJumpList ist recht eigenwillig

  Alt 29. Aug 2023, 10:44
Code:
-2147023721
$80070497
 S        Severity = 1 = Failure
 R        Second Severity = 0 (z.B. 1=Warning oder Hint)
 C        Customer Defined = 0
 N        0
  X       0
  FFF     Facility = Win32
     CCCC Code = $0497 = ERROR_UNABLE_TO_REMOVE_REPLACED
                         Die zu ersetzende Datei kann nicht entfernt werden.
hmmmmmmmmmmmmmmm?

1175 (0x497) -> https://learn.microsoft.com/de-de/wi...es--1000-1299-

Delphi-Quellcode:
ShowMessage(SysErrorMessage($80070497)); // Cardinal o_O
RaiseLastOSError(-2147023721); // Integer
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (29. Aug 2023 um 10:47 Uhr)
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
264 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: TJumpList ist recht eigenwillig

  Alt 29. Aug 2023, 18:22
Es klingt ja so, als ob der Fehler zwar nicht jedes Mal auftritt, aber mit etwas probieren relativ schnell kommt, oder? Kannst du das auch in einem separaten Projekt reproduzieren, dass du hier zeigen könntest?
Wie es sein soll, wenn ich ihn provozieren will, kommt er ewig nicht. Wenn ich das Programm mal laufen lasse, kann er gar nicht oft genug kommen.

Code:
-2147023721
$80070497
 S        Severity = 1 = Failure
 R        Second Severity = 0 (z.B. 1=Warning oder Hint)
 C        Customer Defined = 0
 N        0
  X       0
  FFF     Facility = Win32
     CCCC Code = $0497 = ERROR_UNABLE_TO_REMOVE_REPLACED
                         Die zu ersetzende Datei kann nicht entfernt werden.
hmmmmmmmmmmmmmmm? [/DELPHI]
Ja, das ist einer der wenigen Treffer zu dem Fehler die man im Netz finden kann. Ich wollte das aber nach Möglichkeit ignorieren, erstens, weil ich keine wirkliche Verbindung erkennen kann (na ja, siehe unten) und zweitens weil es so wohl aussichtslos ist, etwas zu unternehmen. Allerdings, Windows schreibt seine JumpList-Schandtaten u.a. in %APPDATA%\Microsoft\Windows\Recent\CustomDestinati ons tatsächlich auf die Festplatte. Möglich wären Zugriffskonflikte also. Nur, warum ausgerechnet bei meinem Progrämmchen? Das macht doch nichts wildes. JumpLists gibt es seit Windows 7, wenn er häufiger auftreten sollte, wäre vermutlich mittlerweile das Internet voll davon.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.583 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: TJumpList ist recht eigenwillig

  Alt 29. Aug 2023, 18:31
Wenn es wirklich ein Dateizugriffsproblem sein sollte, kommt natürlich automatisch das Antivirenprogramm in den Blickpunkt.

Außerdem könntest du den Process Monitor mitlaufen lassen und, wenn der Fehler auftritt, nachschauen, ob da Fehler geloggt werden.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
264 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: TJumpList ist recht eigenwillig

  Alt 29. Aug 2023, 19:00
Ich habe mal ein Minimalprogramm erstellt. Hier ist er auch da.
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
  item: TJumpListItem;
begin
  JumpList1.AddCategory('eins');
  JumpList1.AddCategory('zwei');
  item := JumpList1.TaskList.Add as TJumpListItem;
  item.FriendlyName := 'OSK';
  item.path := 'C:\Windows\System32\osk.exe';
  item.Icon := 'C:\Windows\System32\osk.exe';
  for var i := 0 to 4 do
  begin
    item := JumpList1.CustomCategories[0].Items.Add as TJumpListItem;
    with item do
    begin
      path := Application.ExeName;
      Arguments := 'Test'+i.ToString;
      FriendlyName := 'Test'+i.ToString;
      path := Application.ExeName;
      icon := Application.ExeName
    end;
  end;
end;
Die Idee mit dem Virenscanner scheint ziemlich gut gewesen zu sein. Wenn der abgeschaltet ist, geht es anscheinend ohne Fehlermeldung. Also erstmal danke.
Jetzt muss ich nur noch herausbekommen, wie ich dem Scanner abgewöhne dort zu stänkern. Kann ja nicht ständig das Internet abschalten. Schlucken tut er ihn nicht. Na ja, wollte sowieso wechseln.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.583 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: TJumpList ist recht eigenwillig

  Alt 29. Aug 2023, 19:29
Vielleicht reicht es ja, wenn du die Exe oder das von dir genannte Verzeichnis als Ausnahme hinzufügst.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
264 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: TJumpList ist recht eigenwillig

  Alt 30. Aug 2023, 07:08
Geht leider nicht, das Verzeichnis "existiert nicht". Wenn ich es oberhalb mit 'recent' - also 'Zuletzt verwendet' versuche, will er gleich den ganzen Dokumentenornder raus nehmen. Den würde ich aber eher ungern aus der Überwachung entfernen.
Bleibt noch die Frage, was macht C# anders, dass der Fehler dort nicht auftritt?
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
677 Beiträge
 
Delphi 10.3 Rio
 
#17

AW: TJumpList ist recht eigenwillig

  Alt 30. Aug 2023, 13:58
Delphi-Quellcode:
function TCustomJumpList.CheckUpdateError(ErrNo: HRESULT; const Description: string): Boolean;
var
  LHandled: Boolean;
begin
  Result := Succeeded(ErrNo);
  if not Result then
  begin
    LHandled := false;
    if Assigned(FOnListUpdateError) then
      FOnListUpdateError(Self, ErrNo, Description, LHandled);
    if not LHandled then
      raise EJumpListException.CreateFmt(SJumplistException, [ErrNo, Description]);
  end;
end;
Möglicher Bugfix Fehlerabfangen/-ignorieren:
OnListUpdateError und dort True zurückgeben.
Hattest Du das gesehen?
Das ist zwar keine Lösung des wirklichen Problems, aber Du kannst den Fehler fangen.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.066 Beiträge
 
Delphi 12 Athens
 
#18

AW: TJumpList ist recht eigenwillig

  Alt 30. Aug 2023, 14:23
Vielleicht nicht unbedingt "blind" ein Result := True; , aber zumindestens Result := WinErrorCode = $80070497; .
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
264 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: TJumpList ist recht eigenwillig

  Alt 30. Aug 2023, 18:42
Das ist zwar keine Lösung des wirklichen Problems, aber Du kannst den Fehler fangen.
Doch schon, aber ich wollte es so lange wie möglich ignorieren. Wenn man die Fehlermeldung abschaltet, ist der Fehler ja immer noch da. Falls das Schreiben der Datei tatsächlich nicht klappt, die wird doch sicherlich von Windows ausgelesen, wenn die Jumpliste angezeigt wird.

Allerdings scheint es zu funktionieren. Selbst wenn der Fehler auftritt landet wohl alles was soll auch in der Liste. Sie soll ja sowieso nur funktionieren, so lange das Programm läuft, vielleicht hat Windows dann alles im Speicher. Mit Bauchschmerzen wäre es eine Lösung. Falls die zu stark werden kann ich es ja immer noch in C# umschreiben. Dabei wollte ich nach fast zwei Jahren mal wieder etwas mit Delphi machen.
Also Danke an alle, die versucht haben mir zu helfen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.066 Beiträge
 
Delphi 12 Athens
 
#20

AW: TJumpList ist recht eigenwillig

  Alt 30. Aug 2023, 19:50
Zumindestens kannst du es dort still und heimlich loggen, damit es nicht ganz verschwindet.
Und jupp, darum auch die Einschränkung auf den einen Fehlercode, damit andere Fehler dennoch gezeigt werden.


Zitat:
ja immer noch in C# umschreiben
Aktuell lösen wir es zwar über eine *.EML ans StandardMailProgramm,
aber prinzipiell haben wir für die MAPI, mit Dateianhängen an Outlook, auch ein C#-Konsolenprogramm gebastelt, was die OfficeAPI im .NET nutzt, weil MSOffice mag die MAPI oft nicht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (30. Aug 2023 um 19:54 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz