CHM 파일을 열면 "웹 페이지 탐색이 취소되었습니다."가 생성됩니다.


84

.chm 파일을 열려고합니다.

소스를 다운로드하고 압축을 푼 다음 두 번 클릭 Waffle.chm하고 "열기"를 클릭했지만 chm 파일의 어떤 요소를 클릭해도 메시지가 나타납니다.

Navigation to the webpage was canceled.  
What you can try: 
Retype the address.  

여기에 이미지 설명 입력

여기서 무슨 일이 일어나고 있습니까?

답변:


168

요약

Microsoft 보안 업데이트 896358 및 840315는 네트워크 드라이브 (또는 UNC 경로 ) 에서 열 때 CHM 파일 내용의 표시를 차단합니다 . 이것은 바이러스 / 악성 프로그램에 대한 공격 벡터가 컴퓨터를 감염시키는 것을 막으려는 Windows의 시도이며이 chm 파일이 사용하는 "InfoTech"프로토콜을 통해 데이터를 가져 오는 .chm 파일을 차단했습니다.

Microsoft의 문제 요약 : http://support.microsoft.com/kb/896054

솔루션

  1. Windows Server 2008을 사용하는 경우 Windows 7에서 빠른 수정이 생성되었습니다. chm 파일을 마우스 오른쪽 버튼으로 클릭하면 "yourfile.chm 속성"대화 상자가 나타나고 하단에 "Unblock"이라는 버튼이 나타납니다. 차단 해제를 클릭하고 확인을 누른 다음 chm 파일을 다시 열어보십시오. 올바르게 작동합니다. 이 옵션은 WindowsXP (SP3) 이전 버전의 Windows에서는 사용할 수 없습니다.

  2. 네트워크 드라이브에서 chm 파일을 이동하여 문제를 해결하십시오. 네트워크 드라이브를 사용 중인지 모를 수 있습니다. 지금 다시 확인하십시오. .chm 파일을 마우스 오른쪽 단추로 클릭하고 속성을 클릭 한 다음 "위치"필드를 확인하십시오. \\epicserver\blah\다음 과 같이 두 개의 백 슬래시로 시작하는 경우 : 네트워크 드라이브를 사용하고있는 것입니다. 문제를 해결하려면 chm 파일을 복사하여 C : \ 또는 E :와 같은 로컬 드라이브에 붙여 넣으십시오. 그런 다음 chm 파일을 다시 열어보십시오. Windows가 놀라지 않습니다.

  3. 네트워크 드라이브에서 파일을 복사 / 이동할 수없는 경우 마지막 수단입니다. 이 파일이있는 곳에서 열어야하고 XP, Vista, ME 또는 기타와 같은 더 낮은 버전의 Windows를 사용하는 경우이 .chm 파일에 대해 놀라지 않도록 Windows수동으로 지시 해야합니다. HHReg (HTML 도움말 등록 유틸리티) 유틸리티는이 작업을 자동화합니다. 기본적으로 HHReg 유틸리티를 다운로드하고 .chm 파일을로드하고 확인을 누르면 Windows에 차단하지 않도록 지시하는 데 필요한 레지스트리 키가 생성됩니다. 자세한 정보 : http://www.winhelponline.com/blog/fix-cannot-view-chm-files-network-xp-2003-vista/

Windows 8 또는 10? -> Windows XP로 업그레이드하십시오.


3
나는 WINXP SP3 또는 WinVista 홈 프리미엄에 중 하나 "차단 해제"버튼이 표시되지 않습니다
GetFree

솔루션 1은 Windows 8에 없습니다. 쉬운 win8 방법이 있습니까?
countunique

2
참조 된 KB 문서에서 제안 된 솔루션 중 4 가지 가능한 솔루션과 일치하는 솔루션이 없습니다. 나를 위해 '1'고정 된 문제에 'MaxAllowedZone을'을 설정
abstrask

UNBLOCK은 도움이되지 않습니다. 파일을 로컬 드라이브에 복사하고 (비 네트워크) 로컬 드라이브에서 열어야합니다.
Erdinc Ay 2015

1
이 문제는 인터넷에서 다운로드 한 chm에도 영향을 미칩니다. 다운로드 직후 차단 해제 버튼 / 체크 박스가 나타나지 않을 수 있습니다. 내 경험상, 먼저 로컬 파일 시스템에서 chm을 열고, 손상되었는지 확인하고, 닫은 다음 잠금을 해제하기 위해 파일 속성으로 이동해야합니다.
Frédéric

43

파일을 "차단 해제"하면 문제가 해결됩니다. 스크린 샷 :

여기에 이미지 설명 입력


이 트릭을 오랫동안 사용하지 않아서 잊고 있었는데 다시 한번 상기시켜 주셔서 감사합니다.
kta 2014 년

@kaziTanvirAhsan 내가 도울 수있어서 다행이다.
colemik

네트워크 위치에서 로컬 위치로 이동하는 것만으로는 충분하지 않습니다.이 스크린 샷과 같이 차단을 해제해야합니다. 덕분에 @trismarck
leinad13

이것은 효과가 있었다! 감사. 나는 결코 스스로 알아 내지 못했을 것입니다.
NilsB 2014 년

win-7에서는 이러한 옵션을 찾을 수 없습니다. / w 파일을 여는 대신 로컬 컴퓨터에 복사하여 작동합니다.
tsenapathy 2015-06-29

11

Win 8 x64 :

다른 폴더로 이동하거나 폴더 이름을 변경합니다 (제 경우에는 폴더가 "c #"임). 폴더 이름에 기호를 사용하지 마십시오. 편지로 이름을 지정하십시오.

끝난.


이것은 또한 작동합니다. 내 .chm 파일은이 폴더 C : \ C # \ Samples에 있었고 C : \ temp로 옮겼습니다. 효과가있다! 감사합니다. :)
klaydze 2014 년

우수한! 저는 Windows 10 사용자입니다. 이전 C # chm 도움말 파일에서 파일 이름과 폴더 이름 모두에서 "#"을 제거해야했습니다.
마르셀 Bergweiler

11

Eric Leschinski의 답변 외에도 이것은 프로그래밍 솔루션 인 stackoverflow이기 때문에 다음과 같습니다.

Windows는 숨겨진 파일 포크를 사용하여 콘텐츠를 "다운로드 됨"으로 표시합니다. 이를 자르면 파일 차단이 해제됩니다. CHM에 사용되는 스트림의 이름은 "Zone.Identifier"입니다. 파일을 열 때 : streamname을 추가하여 스트림에 액세스 할 수 있습니다. (RTL이 그것을 망칠 경우를 대비하여 처음으로 백업을 유지하십시오!)

Delphi에서는 다음과 같습니다.

var f : file;
begin
 writeln('unblocking ',s);
 assignfile(f,'some.chm:Zone.Identifier');
 rewrite(f,1);
 truncate(f);
 closefile(f);
end;

포크되지 않은 파일 시스템 (FAT32와 같은)에는 숨겨진 파일이 있다고 들었지만 아직 그 밑바닥에 이르지 못했습니다.

Ps Delphi의 DeleteFile ()도 포크를 인식해야합니다.


매우 흥미로운 대답입니다. 이 숨겨진 파일 포크에 대한 자세한 정보는 어디에서 찾을 수 있습니까?
ViRuSTriNiTy

MSDN. 예를 들어 sb는 deletefile도 작동한다고 언급했으며 MSDN에서 관련 호출을 살펴보고 함수가 정확히 어떻게 작동하는지 문서화했습니다. 내가 인터넷에서 얻은 특정 Zone.Identifier 비트. 그것은 또한 당신이 MSIE 높은 보안 설정이있는 경우 예에 대한 EXE 파일을 dled 차단 된 작동
마르코 반 드 인해 사용

6

확실한 해결책은 InfoTech 프로토콜이 인트라넷 영역에서 작동하도록하는 것입니다.

레지스트리에 다음 값을 추가하면 문제가 해결되어야합니다.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001

자세한 정보 : http://support.microsoft.com/kb/896054


4

시작으로 이동

유형 regsvr32 hhctrl.ocx

다음과 같은 성공 메시지를 받아야합니다.

"hhctrl.ocx의 DllRegisterServer 성공"

이제 CHM 파일을 다시 열어보십시오.


1
Voww ... 저에게 적합합니다 ... (파일 오른쪽 클릭, 속성에 '차단 해제'버튼이 표시되지 않았습니다. 잘 작동합니다.)
tsenapathy

3

다른 방법은 다른 타사 소프트웨어를 사용하는 것입니다. 이 링크 는 chm 파일을 볼 수있는 더 많은 타사 소프트웨어를 보여줍니다.

나는 SumatraPDF로 시도했고 잘 작동합니다.


2

C ++ Builder를 사용하여 소프트웨어에서 프로그래밍 방식으로 수정했습니다.

CHM 도움말 파일을 할당하기 전에 Application->HelpFile = HelpFileName"Zone.Identifier"스트림이 포함되어 있는지 확인하고 포함 된 경우 간단히 제거합니다.

String ZIStream(HelpFileName + ":Zone.Identifier") ;

if (FileExists(ZIStream))
    { DeleteFile(ZIStream) ; }

1

분명히 다른 수준의 인증이 있습니다. 내가 읽은 대부분의 기사는 MaxAllowedZone을 '1'로 설정하라고 알려줍니다. 즉, 로컬 컴퓨터 영역과 인트라넷 영역은 허용되지만 '4'는 '모든'영역에 대한 액세스를 허용합니다.

자세한 내용은 https://support.microsoft.com/en-us/kb/892675 문서를 참조하세요.

이것은 내 레지스트리의 모습입니다 (와일드 카드와 함께 작동하는지 확신하지 못했지만 나를 위해 작동하는 것 같습니다) :

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000004

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"UrlAllowList"="\\\\<network_path_root>;\\\\<network_path_root>\*;\\ies-inc.local;http://www.*;http://*;https://www.*;https://*;"

추가 참고로, 이상하게도 다른 PC에서이 작업을 수행하려면 "UrlAllowList"키가 필요했지만 내 테스트 용 PC가 아닙니다. 아마도 전혀 필요하지 않지만 추가했을 때 문제가 해결되었습니다. 사용자가 원본 파일 등을 닫지 않았을 수 있습니다. 그래서 고려 사항입니다. 최소한 시도하고 테스트 한 다음 필요한 경우 추가하는 것이 좋습니다. 확인한 후 필요한 경우 배포 할 수 있습니다. 행운을 빕니다!

편집 : PS 작동 한 또 다른 방법은 mklink / d (Windows 7 이상에서 기호 연결)를 사용하여 로컬로 경로를 네트워크에 매핑하는 것이었지만 네트워크 드라이브 문자 (Z : 테스트 용) 매핑이 작동하지 않았습니다. 단지 생각을위한 음식이며 어떤 파일도 '차단 해제'할 필요가 없었습니다. 또한 받아 들여진 '솔루션'이 문제를 해결하지 못했습니다.


문제 없습니다. 누군가 혜택을 받았다 니 다행입니다. 베스트!
jacktrader
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.