gpt4 book ai didi

.Net Screensaver 找不到配置文件

转载 作者:行者123 更新时间:2023-12-04 06:29:44 25 4
gpt4 key购买 nike

我用 C# 和 Windows 窗体编写了一个屏幕保护程序。为了测试,我一直很懒惰,只是将配置文件用于我的所有设置(还没有设置对话框),但是当 Windows 运行屏幕保护程序时,程序似乎无法找到或读取配置文件。

当我使用预览按钮或以任何方式手动运行它时,它才起作用,只有当它遇到屏幕保护程序超时时才能找到配置文件。

让它记录 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile 它返回短名称:C:\Windows\System32\MYSCRE~1.config它应该在哪里 C:\Windows\System32\MyScreenSaverName.scr.Config
所以我猜测问题是它找不到具有短名称路径的配置文件。

不确定是由于 Windows 7 在其下运行屏幕保护程序的系统帐户,还是其他有关它如何运行的原因。任何信息都会有所帮助,谢谢。

编辑: 试图找出任何差异:

  • 我能找到的唯一区别是当 Windows 运行屏幕保护程序时 Environment.CommandLine 返回 C:\Windows\system32\MYSCRE~1.SCR /s,但是当我运行它时有正常路径
  • Process.GetCurrentProcess().StartInfo 下的一切都是一样的
  • WindowsIdentity.GetCurrent().Name 是我的账户名

  • 查看其他问题,似乎 User32 是启动屏幕保护程序的原因,所以我认为它必须与如何启动 scr 进程有关。

    变通方法: 将我的 .scr 文件重命名为 8 个字符或更少可以使其正常工作。所以现在有效,仍然很想知道为什么会出现这个问题。

    最佳答案

    编辑 : 哎哟...我注意到为时已晚,这是一个 1 岁的问题.... 好吧,也许有人无论如何都能发现这很有用。

    你确定文件系统不是 fat/fat32 而不是 ntfs?

    也许它是从旧的 fat/fat32 格式系统升级而来的 Win7? (所以 fs 没有升级)?

    也许我错了,我只是猜测看到适当的短名称。我最近在 c# 中处理了一个屏幕保护程序项目,我根本没有遇到任何问题......老实说,我没有看到短名称......

    您应该从磁盘管理中看到 fs 类型。
    做一些研究我也得到了这个,检查 FUTIL.EXE 是否可以提供帮助,那里有一个奇怪的“disable8dot3”选项:

    http://commandwindows.com/fsutil.htm

    关于.Net Screensaver 找不到配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812089/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com