.Net Screensaver findet die Konfigurationsdatei nicht

8

Ich habe einen Bildschirmschoner in C # und Windows Forms geschrieben. Zum Testen war ich faul und habe nur die Konfigurationsdatei für alle meine Einstellungen verwendet (noch kein Einstellungsdialog), aber das Programm scheint die Konfigurationsdatei nicht zu finden oder zu lesen, wenn Windows den Bildschirmschoner ausführt.

Es funktioniert, wenn ich die Vorschau-Taste benutze oder sie manuell in irgendeiner Weise ausführe, nur wenn es das Bildschirmschoner-Zeitlimit erreicht, dass es die Konfigurationsdatei nicht finden kann.

Log es AppDomain.CurrentDomain.SetupInformation.ConfigurationFile Es gibt den Kurznamen zurück: C:\Windows\System32\MYSCRE~1.config Wo sollte es C:\Windows\System32\MyScreenSaverName.scr.Config

sein

Also ich vermute das Problem ist, dass es die Konfigurationsdatei mit dem kurzen Namenspfad nicht finden kann.

Nicht sicher, ob es aufgrund des Systemkontos, unter dem Windows 7 Bildschirmschoner ausführt, oder etwas darüber, wie es ausgeführt wird, ist. Jede Information wäre hilfreich, danke.

Bearbeiten: Versuchen, Unterschiede zu finden:

  1. Der einzige Unterschied, den ich finden kann, ist, dass Environment.CommandLine C:\Windows\system32\MYSCRE~1.SCR /s zurückgibt, wenn Windows den Bildschirmschoner ausführt, aber den normalen Pfad, wenn ich es ausführe
  2. Alles unter Process.GetCurrentProcess().StartInfo ist das gleiche
  3. WindowsIdentity.GetCurrent().Name ist mein Kontoname

Wenn man sich andere Fragen anschaut, scheint es so zu sein, dass User32 die Bildschirmschoner startet, also denke ich, es muss etwas darüber sein, wie der Scr-Prozess gestartet wird.

Umgehen: Das Umbenennen meiner .scr-Datei mit maximal acht Zeichen ermöglicht die korrekte Ausführung. Das funktioniert jetzt, würde immer noch gerne wissen, warum dieses Problem existiert.

    
Thymine 18.10.2011, 18:44
quelle

1 Antwort

1

edit : autsch ... Ich habe zu spät gemerkt, dass es eine 1-jährige Frage ist ... naja, vielleicht kann jemand das sowieso nützlich finden.

Sind Sie sicher, dass das Dateisystem nicht fett / fett32 statt ntfs ist?

Vielleicht ist es ein Win7-Upgrade von einem alten fat / fat32-formatierten System? (Und so fs wurden nicht aktualisiert)?

Vielleicht irre ich mich, es ist nur meine Vermutung, um kurze Namen an Ort und Stelle zu sehen. Ich habe kürzlich an einem Bildschirmschoner-Projekt in c # gearbeitet und ich habe überhaupt keine Probleme gehabt ... Ich sehe seit Ewigkeiten keine kurzen Namen, um ehrlich zu sein ...

Sie sollten den fs-Typ von der Datenträgerverwaltung sehen. Wenn ich etwas recherchiere, habe ich das auch bekommen. Prüfe, ob FUTIL.EXE helfen kann, es gibt eine merkwürdige "disable8dot3" -Option genau dort:

Ссылка

    
Squiffy 11.11.2012 02:22
quelle

Tags und Links