2010-01-20 7 views
3

C#에서 화면 보호기를 작성했지만 미리보기 모드로 실행하거나 시작할 때마다 예외가 발생합니다. Windows \ System32에서 두 번 클릭하면 정상적으로 실행됩니다. Visual Studio 디버거를 사용하면 Windows \ System32에있는 응용 프로그램의 .config 파일을 읽지 않는다는 사실을 알았습니다.화면 보호기 응용 프로그램에서 App.Config를 읽지 못합니다.

rundll32.exe가 화면 보호기를 실행하면 app.config 파일이 생략 된 것 같습니다. 강제로드 할 수있는 방법이 있습니까?

감사

+0

.NET 화면 보호기를 사용하면 항상 사용자 지정 serialize 된 myScreenSaver.xml 만 사용합니다 (동시에 화면 보호기 설정을 변경하는 데 사용됨). – sabiland

답변

0

를 사용하여 프로세스 모니터 설정은 화면 보호기를 읽을하려고 파일을 확인하려면 다음을 참조하십시오.

+1

ProcessMonitor는 앱이 읽으려고하는 모든 것을 보여줍니다. ProcessExplorer는 시스템에있는 앱 목록을 표시합니다. –

+0

아아, 나는 그들을 섞었다, 미안. * SysInternals의 프로세스 모니터를 의미 했습니까? http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx* – Abel

0

내 생각 엔 응용 프로그램이 다른 작업 디렉토리로 실행되고있는 것 같습니다. this post (read down)에서 보통 실행 파일을 만들고 * .scr로 이름을 바꾸고 파일을 마우스 오른쪽 버튼으로 클릭 한 다음 "install"을 선택하여 system32 디렉토리로 이동해야합니다.

아마도 "설치"기능은 화면 보호기가 호출되는 방식 또는 작동하는 디렉토리로 봐야하는 곳을 변경합니다.

1

필자의 이전 경험에서 기억하는 한, 화면 보호기는 "현재 디렉토리"를 % userprofile %로 설정하여 실행됩니다. 일시적으로 설정 파일을 해당 디렉토리에두면 사실인지 아닌지를 확인할 수 있습니다. 그리고 그것이 사실이라면, 현재 디렉토리가 아닌 화면 보호기가있는 디렉토리에서 설정을 읽는 코드를 추가해야합니다.

+0

어떻게하면 화면 보호기에서 구성 파일을 읽을 수 있습니까? .scr 파일이있는 디렉토리? – Michali

+0

@FrancisCastiglione : 귀하의 질문에 대답하는 대신 귀하에게 질문을 드려 죄송합니다. 귀하의 설정을 지금 어떻게 읽으십니까? –

0

하면 정보가 전혀 지금까지

  • 가 machine.config 파일에 설정을 추가뿐만 아니라 당신에게 수있는 작업하지 않습니다, 또는
  • 구성
2

감사에 대한 사용자 지정 파일을 사용하는 경우 SysInternals의 프로세스 모니터를 추천 한 사람들에게. 이것을 사용하여 8 글자 버전의 구성 파일 이름을 찾고 있음을 알았습니다. 이것은 SCR 파일의 처음 6 자이며 ~ 1.scr입니다. 프로세스의 이름이기 때문입니다. 내가해야 할 일은 파일의 이름을 바꾸거나 scr 파일의 이름을 변경하고 싶지 않기 때문에 2 개의 버전을 유지하는 것입니다.

+0

파일 이름을 변경하지 않으려는 이유는 제어판에 화면 보호기 이름이 표시되는 방식을 변경하지 않기 때문입니다. 이는 사용자가 관심을 가질 수 있습니다. https://github.com/steveniles/MandelZoom/wiki/Screen-saver-quirks (공개 : 내 화면 보호기의 기술적 인 세부 사항을 설명하기 위해 작성한 위키의 일부입니다.) – Jargon

+0

이것이 내 문제의 원인이었습니다. 내가 작성하고 "설치"를 선택하는 화면 보호기를 마우스 오른쪽 버튼으로 클릭하면 레지스트리에 짧은 경로로 설정되고 있음을 의미합니다. 바인딩 리디렉션이 필요한 nuget 패키지가 있었기 때문에 구성 파일이 더 이상 일치하지 않습니다. FOO ~ 1.SCR.CONFIG로 설정을 변경했는데 모두 정상적으로 작동했습니다. 얼마나 짜증나! – nrjohnstone

관련 문제