Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Dateien sind nicht da wo sie sein sollten... (https://www.delphipraxis.net/217441-dateien-sind-nicht-da-wo-sie-sein-sollten.html)

Lemmy 30. Jun 2025 16:51

Dateien sind nicht da wo sie sein sollten...
 
Hi,

sorry für den Titel, aber mir fällt sonst nix ein.

Ich habe hier ne Software, mit Delphi 10.4 gebaut, jahrelang im Einsatz, viele Kunden.

bei einem (1) Kunden seit Jahresbeginn folgendes Phänomen:

Aus der Anwendung raus wird ein Javaprogramm gestartet, mit eigener, mitgelieferter OpenJRE umgebung. In dem Prozess werden in einem definierten (von mir vorgegebenen) Verzeichnis eine handvoll Dateien erzeugt. Der Prozess beendet sich dann wieder, die Delphi-Anwendung soll dann aus dem Verzeichnis eine PDF öffnen. So weit so gut.

Nun stellt sich die Situation beim Kunden so dar, dass das Java.exe läuft, abgeschlossen wird, die Steuerung wieder zurück zum Delphiprogramm geht, wird mit "if Fileexists()" versucht die PDF zu finden. Nur ist die bei dem Kunden dann nicht da und er bekommt ne hübsche Fehlermeldung.

Wenn ich den Start des Javaprogramms etwas umbiege, dass eine GUI startet anstelle einer Konsolenanwendung, dann kann ich problemlos aus der GUI anwendung raus, die Dateien erzeugen und die erzeugte PDF öffnen.
Die geht konkret im Internetexplorer auf (einen andneren PDF Viewer habe ich auf der Kiste nicht). Wenn ich jetzt (das PDF ist offen!) in das Verzeichnis gehe (mit dem Windows Explorer), dann zeigt der Windows-Explorer mir nackte leere an, d.h. keine Dateien.

Dann kann ich in Folge coole Dinge tun:
im Internetexplorer die Datei (PDF) die angezeigt wird, in der TItelleiste den Dateinamen entfernen, dann wird mir der Verzeichnisinhalt angezeigt: und sie he da: Alle erwarteten Dateien sind da - aber halt nicht im Explorer (auch nicht in der Powershell, auch nicht im cmd).

Wenn ich einen weiteren Internetexplorer starte und die selbe Datei versuche aufzurufen, bzw. mir das Verzeichnis anzeigen lasse, dann ist da wieder absolute leere.

Cool auch: Ich kann im Explorer eine Datei oder ein Verzeichnis anlegen und wenn ich den Browser mit F5 aktualisieren lasse, dann zeigt der mir das Verzeichnis neben den von dem Javaprogramm erzeugten Dateien auch im IE an - sowohl in dem IE mit den vielen Dateien die ich suche als auch im zeitgleich offenen IE der nix anzeigt.

Mit meinen Versuchen kann ich also ausschließen, dass ich in einem anderen Verzeichnis bin. Schon bei den letzten beiden Kontakten zu dem Thema konnte ich ausschließen bzw. habe nichts dergleichen gefunden, dass hier die Verzeichnisvirtualisierung zuschlägt (wir befinden uns unterhalb von Programdata).


Interessant auch: bisher war das Problem nach ein paar Tagen von alleine wieder weg (bisher 2x, jetzt das dritte mal), d.h. Rechner neustarten und co macht keinen Unterschied.

Hat jemand irgend eine Idee was das für eine tolle Funktion da rein spielt?

Sinspin 30. Jun 2025 17:26

AW: Dateien sind nicht da wo sie sein sollten...
 
Win11 vermutlich?
Möglicherweise ein Virenscanner. Nach einem Signaturudate geht es wieder.
Wenn Du im Explorer die Anzeigeoptionen änderst, Hiddenfiles und Systemfiles anzeigen, Versteckte Systemordner anzeigen. Komprimierte Ordner andersfarbig, wird es da interessanter?

System Error Log?
Mal ProcessMonitor mitlaufen lassen?

gubbe 30. Jun 2025 18:10

AW: Dateien sind nicht da wo sie sein sollten...
 
Das klingt aber trotzdem sehr danach, als würde Windows die Schreibzugriffe in einen virtuellen Ordner umleiten, weil im richtigen Ordner nicht geschrieben werden darf.
Hast Du mal unter "C:\Users\[Username]\AppData\Local\VirtualStore" geschaut, ob dort etwas angelegt wird?

himitsu 30. Jun 2025 18:11

AW: Dateien sind nicht da wo sie sein sollten...
 
Wer kommt auf die irrsinnige Idee, den IE noch benutzen zu wollen?

In welches Verzeichnis lasst ihr diese Dateien schreiben?

Jetzt sagt nicht, dass ihr mit uralten schrottigen Programmen in Verzeichnisse schreiben/lesen wollt, die seit 25 Jahren "eigentlich" schreibgeschützt sind?

Eure Dateien findet ihr nicht zufällig dort drin?
Delphi-Quellcode:
C:\Users\%username%\AppData\Local\VirtualStore
(einfach diesen Pfad so in die Adresszeile des Explorers kopieren und [Enter])

Bei Google suchenUAC-Virtualisierung

Delphi.Narium 30. Jun 2025 18:16

AW: Dateien sind nicht da wo sie sein sollten...
 
Habe mal Deinen Text oben per Copy&Paste an drei KIs gegeben. Sie liefern alle drei eine Vielzahl von möglichen Ursachen und von Lösungsansätzen.

Die Ergebnisse sind zu umfangreich, um sie hier reinzukopieren. Eventuell versuchst Du ja dort mal dein Glück:

https://www.perplexity.ai/
https://grok.com/?referrer=website
https://chatgpt.com/

Alle halten Antivirensoftware, Explorercache und Virtualisierung für verdächtig. Rechteprobleme werden auch nicht ausgeschlossen.

Scheint insgesamt ein sehr ungewöhnliches Verhalten zu sein, auf dass Du da beim Kunden gestoßen bist.

Die Vorschläge von gubbe und himitsu sind bei allen dreien mit auf der "Prüfliste".

himitsu 30. Jun 2025 18:24

AW: Dateien sind nicht da wo sie sein sollten...
 
speziell der Aspekt, dass es mit der GUI läuft, aber via Console nicht .... PS, das Problem hat auch Delphi.
https://embt.atlassian.net/servicede...tal/1/RSS-1159 :stupid:

Lemmy 30. Jun 2025 18:28

AW: Dateien sind nicht da wo sie sein sollten...
 
sorry, leute, hier noch ein paar INformationen:

Die Dateien werden unter c:\programdata geschrieben, also nix alte gammelsoftware.

Virtualstore geprüft: nix zu finden

ja, ist Win11

und Korrektur: IE = Edge, sorry.


Und versteckte Dateien und co: dann sollten die mit einem dir (cmd) oder ls (powershell) auftauchen bzw. durch ein FileExists gefunden werden

Lemmy 30. Jun 2025 18:33

AW: Dateien sind nicht da wo sie sein sollten...
 
Zitat:

Zitat von himitsu (Beitrag 1549858)
speziell der Aspekt, dass es mit der GUI läuft, aber via Console nicht .... PS, das Problem hat auch Delphi.
https://embt.atlassian.net/servicede...tal/1/RSS-1159 :stupid:

so weit würde ich nicht gehen.
Die Frage ist wo die Dateien landen. Vermutlich klappt das auch mit der Console, wenn das geht werde ich morgen versuchen nach dem Aufruf der KOnsole, die PDF zu öffnen in der batch. innerhalb des Prozesses sind die Dateien sichtbar, außerhalb halt nicht. Wäre noch interessant, ob ich diese dann auch kopieren kann.

himitsu 30. Jun 2025 18:41

AW: Dateien sind nicht da wo sie sein sollten...
 
Auch auf C:\ProgramData hat standarmäßig nicht jeder Schreibzugriff. (abgesehn Administratoren und Systemdiensten)


Relativer Pfad, anstatt Absolutem,
für die Dateiausgabe?

himitsu 30. Jun 2025 18:45

AW: Dateien sind nicht da wo sie sein sollten...
 
Zitat:

Zitat von Lemmy (Beitrag 1549859)
Und versteckte Dateien und co: dann sollten die mit einem dir (cmd) oder ls (powershell) auftauchen bzw. durch ein FileExists gefunden werden

Wenn es sich um Redirection/Virtualisierung handelt, dann kommt es drauf an, ob der Prozess virtualisiert wird. (hängt z.B. vom Manifest, der Bitigkeit und anderen irrwitzigen Faktoren ab)

Wenn das Speichernde und das Lesende anders reagieren, kann es sein, dass der Andere nichts oder was Anderes sieht.

gubbe 30. Jun 2025 18:55

AW: Dateien sind nicht da wo sie sein sollten...
 
Da gibt es ja noch mehr Möglichkeiten, warum Windows die Ordner umbiegt. Betreibt der Kunde evtl. Dein Programm oder den Edge-Browser in einer Sandbox?

Edit: Suche in der Systemsteuerung nach "Windows Features" und schaue nach, ob dort die Windows Sandbox installiert ist. Dann hast Du schon mal einen Anhaltspunkt und kannst weiter schauen, ob eines der beteiligten Programm (Deine Anwendung, das Java oder der Edge) evtl. in einer VM läuft und Du deshalb einen anderen Ordner siehst als im Datei-Explorer.

Edit2: Falsch, sehe gerade, dass man das dann deutlich sehen würde, da es wie ein separater Desktop in einem Fenster läuft. Also muss es irgendeine andere Art der Virtualisierung bzw. Ordnerumleitung auf dem System geben.

Solltest Du aber eigentlich rausfinden können, wenn Du das Programm mit dem Processmonitor von Sysinternals beobachtest.

jaenicke 30. Jun 2025 20:39

AW: Dateien sind nicht da wo sie sein sollten...
 
Wird da vielleicht der Windows Defender verwendet? Der hat so ein tolles Feature namens "Controlled Folder Access". Das würde das Verhalten erklären.

Andere Antivirenprogramme sorgen bei verdächtigen Prozessen für ein verzögertes Schreiben, so dass es vielleicht einfach nur eine gewisse Zeit dauert, bis die Datei für andere Prozesse verfügbar ist. McAfee und Sophos machen das z.B. soweit ich weiß. Da sollte es reichen, testweise den Schutz zu deaktivieren oder den Prozess als sicher zu markieren.

Um auszuschließen, dass das Caching zuschlägt, solltest du nicht nur FileExists verwenden, sondern vorher FindFirst aufrufen bzw. die Existenz direkt damit prüfen, um eine Aktualisierung zu erreichen. GetFileAttributes (das intern in FileExists verwendet wird) nutzt ggf. Daten aus dem Cache.

In jedem Fall sollte der schon erwähnte Process Monitor helfen.

Hobbycoder 1. Jul 2025 09:38

AW: Dateien sind nicht da wo sie sein sollten...
 
Zitat:

Zitat von Lemmy (Beitrag 1549859)
sorry, leute, hier noch ein paar INformationen:

Die Dateien werden unter c:\programdata geschrieben, also nix alte gammelsoftware.

Virtualstore geprüft: nix zu finden

Nur mal so. Den Ausgabepfad übergibst du? Und in der GUI, wählst du ihn dann aus? Ist der Ausgabepfad bein Kunden einstellbar? Vielleicht schleicht sich da ein '\' zuviel ode zu wenig ein?
Nur so ne Idee.

dummzeuch 1. Jul 2025 12:22

AW: Dateien sind nicht da wo sie sein sollten...
 
Laufen die beteiligten Programme vielleicht unter verschiedenen Benutzeraccounts? Dann könnte es mit den unterschiedlichen Pfaden in den Profilen zusammenhängen: "My Documents" z.B.

(Ich rate nur. Hatten wir aber mal und war sehr "spaßig".)

Lemmy 2. Jul 2025 05:32

AW: Dateien sind nicht da wo sie sein sollten...
 
Moin,

Auflösung: Der Virenscanner wars. Da ich leider auf dem Rechner keine Admin-Rechte bekommen konnte (die Fernwartung wurde bei der Anforderung ständig blockiert - was sich am Ende auch als "Feature" des Virenscanners raus stellte), habe ich da nie dran gedacht den zu deaktivieren. Nach dem dann vor Ort ein IT-Affiner Mensch saß und wir etwas rumprobierten, klappte nach dem Abschalten des Virenscanners auch alles. Danke für eure Unterstützung

Grüße

dummzeuch 2. Jul 2025 07:38

AW: Dateien sind nicht da wo sie sein sollten...
 
Zitat:

Zitat von Lemmy (Beitrag 1549906)
klappte nach dem Abschalten des Virenscanners auch alles.

Ist das nicht ein bisschen drastisch? Die meisten Virenscanner kann man so konfigurieren, dass sie bestimmte Verzeichnisse in Ruhe lassen. Das würde doch für Deinen Fall vermutlich ausreichen.

Lemmy 2. Jul 2025 13:59

AW: Dateien sind nicht da wo sie sein sollten...
 
Zitat:

Zitat von dummzeuch (Beitrag 1549908)
Zitat:

Zitat von Lemmy (Beitrag 1549906)
klappte nach dem Abschalten des Virenscanners auch alles.

Ist das nicht ein bisschen drastisch? Die meisten Virenscanner kann man so konfigurieren, dass sie bestimmte Verzeichnisse in Ruhe lassen. Das würde doch für Deinen Fall vermutlich ausreichen.

Es geht hier um einen Test an was das liegt. eine Dauerhafte Lösung des Problems ist dann aber nicht mehr meine Aufgabe, weil die endet dann genau da, wo "meine" Software nicht mehr das Problem ist. Darum soll sich bitte der Kunde kümmern, der kennt sein Windows, seine sonstige Software und vor allem seinen Virenscanner (/sarkasmus).

Änder ich an dem System was, bin ich nachher in der Verantwortung. Kannst Du komplett vergessen. Selbst dann wenn die Änderung dann anschließend nix mit dem Problem zu tun hat. Das interessiert den Kunden nicht.

Davon abgesehen: ich habe da gar nix gemacht: Ich habe dem "IT-Beauftragten" des Kunden gezeigt was das Problem ist, dann nur den Begriff "Virenscanner" erwähnt und bevor ich was sagen konnte hat er großflächig im Taskmanager die Prozesse des Virenscanners gekillt. Auf meinen Hinweis vielleicht mal in der Oberfläche zu schauen ob er den für 10 min deaktivieren kann, ist er erst eingegangen, nachdem er einen Prozess nicht hat abschießen können.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz