2011-10-18 2 views
8

C# 및 Windows Forms에서 화면 보호기를 작성했습니다. 테스트를 위해 저는 게으르며 모든 설정 (아직 설정 대화 상자가 없음)에 대한 설정 파일을 사용했지만 Windows가 스크린 세이버를 실행할 때 프로그램이 설정 파일을 찾거나 읽을 수없는 것 같습니다..Net 화면 보호기에서 구성 파일을 찾지 못했습니다.

미리보기 버튼을 사용하거나 수동으로 어떤 방식 으로든 실행하면 작동합니다. 설정 파일을 찾을 수 없다는 스크린 세이버 시간 초과에 도달 할 때만 작동합니다.

그것은 짧은 이름을 반환은 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile 로그 갖는 C:\Windows\System32\MYSCRE~1.config 을가 그래서 문제가이 짧은 이름 경로와 설정 파일을 찾을 수 있다는 것입니다 추측하고있어 C:\Windows\System32\MyScreenSaverName.scr.Config

을해야하는 위치.

Windows 7이 화면 보호기를 실행하는 시스템 계정 또는 실행 방법에 대한 다른 것이 있는지 확실하지 않습니다. 어떤 정보라도 도움이 될 것입니다, 감사합니다.

편집 : 차이 찾으려고 : 내가 찾을 수

  1. 만 차이가를 그 Environment.CommandLine 반환 윈도우 내가
  2. 모두를 실행할 때 화면 보호기를 실행하지만 정상적인 경로가 C:\Windows\system32\MYSCRE~1.SCR /sProcess.GetCurrentProcess().StartInfo는 아래 같은
  3. WindowsIdentity.GetCurrent().Name 내 계정 이름입니다

다른 질문을 살펴보면, User32가 스크린 세이버를 시작한 것으로 보입니다. 그래서 나는 그것이 스크린 프로세스를 시작하는 방법에 관한 것이어야한다고 생각합니다.

해결 방법 : 내 .scr 파일의 이름을 8 자 이하로 변경하면 제대로 작동합니다. 지금 당장은이 문제가 왜 존재하는지 알고 싶어합니다.

+0

저도 같은 문제가 발생 해요 : FUTIL.EXE가 도울 수 있다면 난이있어 몇 가지 조사를하는 는 바로 거기에 호기심 "disable8dot3"옵션이 확인합니다. 그러나 해결 방법은 나를 위해 너무 작동합니다 ... – Jan

+2

스크린 세이버를 실행하는 코드는 여전히 DOS/이전 Windows에서 8 자로 제한되어 있기 때문에? Like C : \ Progra ~ \ 그래서 AppDomain을 호출하고 config 파일을 "a.config"로 변경하면 파일 이름을 8 개 미만으로 바꾸지 않고도 작동합니다. Like : AppDomain.CurrentDomain.SetData ("APP_CONFIG_FILE", "c : \\ this_is_a_long_config_file.config") 참고 : 이것은 내가 비평이 아닌 답변으로 추가 한 이유입니다. –

답변

1

편집 : 아야 ... 1 년 된 질문입니다. 어쩌면 누군가가이 유용한 것을 찾을 수 있습니다.


파일 시스템이 ntfs 대신 fat/fat32가 아닌 것은 확실합니까?

아마 이전 fat/fat32 포맷 시스템에서 업그레이드 한 Win7일까요? (그래서 fs는 업그레이드되지 않았다)?

어쩌면 내가 틀렸을 수도 있습니다. 짧은 이름을 제 생각에는 내 생각입니다. 나는 최근에 C#의 스크린 세이버 프로젝트에서 일했고 전혀 문제가 없었습니다 ... 나는 정년이 지나기 때문에 짧은 이름을 보지 못했습니다 ...

디스크 관리에서 fs 유형을 확인해야합니다.

http://commandwindows.com/fsutil.htm

관련 문제