yapılandırma dosyasını bulamıyor C# ve Windows Forms bir ekran koruyucu yazdım. Test için tembel oldum ve tüm ayarlarım için config dosyasını kullandım (henüz hiçbir ayar iletişim kutusu yok), ancak pencereler ekran koruyucuyu çalıştırdığında program config dosyasını bulamıyor veya okuyor gibi görünüyor..Net Screensaver
Önizleme düğmesini kullandığımda veya el ile herhangi bir şekilde el ile çalıştırıldığında çalışır, yalnızca ekran koruyucu zaman aşımına uğradığında yalnızca yapılandırma dosyasını bulamadığı zaman çalışır.
Kısa adını döndürür o AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
log Having: C:\Windows\System32\MYSCRE~1.config
o yüzden sorun kısa adı yolu ile yapılandırma dosyası bulamıyor olmasıdır tahmin ediyorum C:\Windows\System32\MyScreenSaverName.scr.Config
olması gereken yerde.
Windows 7'nin ekran koruyucular altında çalıştırdığı sistem hesabından veya nasıl çalıştığı hakkında başka bir şey olup olmadığından emin değil. Herhangi bir bilgi yardımcı olabilir, teşekkürler.
Düzenleme: herhangi bir fark bulmak için çalışıyorum: bulabilirim
- tek fark olduğunu
Environment.CommandLine
döner, Windows ben - her şey seçeneğini çalıştırdığınızda ekran koruyucuyu çalıştırır, fakat normal yolu vardır
C:\Windows\system32\MYSCRE~1.SCR /s
Process.GetCurrentProcess().StartInfo
olduğu altında aynı WindowsIdentity.GetCurrent().Name
hesabım adıdır
Diğer sorulara baktığımızda, Kullanıcı32 ekran koruyucuyu başlatan şey gibi görünüyor, bu yüzden bunun scr sürecini başlatan bir şey olması gerektiğini düşünüyorum.
Çevrede Çalışma Alanı: .scr dosyamın yeniden adlandırılması 8 karakterden daha azına sahip olması doğru çalışmasına izin verir. Şimdilik işe yarıyor, bu sorunun neden var olduğunu hala bilmek isterim.
Aynı sorun yaşıyorum: FUTIL.EXE yardımcı olabilir ben de bu var biraz araştırma yapmak , orada bir meraklı "disable8dot3" seçeneği yoktur, kontrol edildi. Ama geçici çözüm benim için de çalışıyor ... – Jan
Ekran koruyucular çalıştıran kod hala 8 karakter DOS/eski Windows sınırlama sahip olduğu için? C: \ Progra ~ \ gibi AppDomain'i çağırırsanız ve config dosyasını "a.config" olarak değiştirirseniz, dosyanın adını 8'den daha az olacak şekilde yeniden adlandırmadan çalışır. Gibi: AppDomain.CurrentDomain.SetData ("APP_CONFIG_FILE", "c: \\ this_is_a_long_config_file.config") Not: Bu bir yorum olarak değil, bir yanıt olarak ekledim nedeni budur. –