2014-12-13 1 views
0

많은 스크립트 오류가 발생하며 내 컴퓨터에서 .chm 파일을 열 때 아무런 이미지도 표시되지 않습니다. 모든 오류 메시지를 무시하고 새로 고침 (두 번)하면 .chm이 올바르게 표시됩니다. 새로운 페이지마다이 작업을 수행해야합니다.디버거를 열 때 .chm이 열릴 때 스크립트 오류가 발생합니다.

.chm 파일에 대한 모든 권장 수정 사항을 작성했습니다! 재방송, 차단 해제 된 고정 경로 ... 오류는 컴퓨터의 .chm 모두에 해당합니다.

이 프로그램을 실행하면 Visual Studio 2013 디버거 .chm 제대로 표시됩니다!

문제는 아마도 내 Windows 구성에 있지만 어쨌든 디버거가이 오류를 "수정"하여 작동하도록합니다. 디버거에는 실제 Windows 구성에 종속되지 않는 자체 구성이 있습니까?

using System.Diagnostics; 
namespace xcute 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      if (args.Length > 0) 
      { 
       string f = args[0]; 

       Process.Start(f); 
      } 
     } 
    } 
} 

편집 : 여기에 오류 대화 상자 LoadLoad Script Error

No Images

+1

당신이 여기 메시지를 게시 할 필요가 오류 메시지를받을 경우. "뭔가 잘못되었습니다."좋은 문제 설명이 아닙니다. –

+0

웹 브라우저에서 도움말을 표시하는 것은 좋지만 많은 프로그램이 오늘 그렇게합니다. 그러나 HTML 페이지를 .chm 파일로 패키지화하면 자바 스크립트를 제거해야합니다. CHM 도움말 뷰어는 기능적인 웹 브라우저가되지 않습니다. –

+0

화면 덤프가있는 .chm 파일은 SandCastle Help File Builder를 사용하여 만들어 지므로 임의의 jabascript가 만들어집니다. 이 파일은 "모든"다른 컴퓨터에서 작동합니다 ... 내 질문은 실제 스크립트 오류에 관한 것이 아니라 디버거에서 Windows 환경에 무언가를 수행하면 .chm 파일이 완벽하게 작동하므로 디버거에서 첨부 된 코드. 디버거 외부에서 실행하면 코드가 작동하지 않습니다 ... – Andis59

답변

1

나는이 문제를 (물론 종류의) 발견입니다!

관리자로 .chm을 열면 모든 것이 작동합니다! 그래서 분명히 내 컴퓨터에 일부 권한 오류가 있습니다. 디버거에서 프로그램을 실행했을 때 작동 한 이유는 Visual Studio가 관리자로 시작 되었기 때문입니다 ...

하지만 저는 프로그래머이기 때문에 관리자로 hh.exe를 시작하는 작은 프로그램을 만들어서 문제를 해결했습니다. . 나는 UAC 동의서를 받지만 나는 그걸로 살 수있다.

// 앤더스

프로그램 :

internal class Program 
    { 
     private static void Main(string[] args) 
     { 
      if (args.Length > 0) 
      { 
       Execute(args[0]); 
      } 
     } 

     private static void Execute(string chmFile) 
     { 
      const int ERROR_CANCELLED = 1223; //The operation was canceled by the user. 

      ProcessStartInfo info = new ProcessStartInfo(@"C:\Windows\hh.exe"); 
      info.Arguments = chmFile; 
      info.UseShellExecute = true; 
      info.Verb = "runas"; 
      try 
      { 
       Process.Start(info); 
      } 
      catch (Win32Exception ex) 
      { 
       if (ex.NativeErrorCode == ERROR_CANCELLED) 
        Console.WriteLine("Why you no select Yes?"); 
       else 
        throw; 
      } 
     } 
    }