.chm 파일을 열려고합니다.
소스를 다운로드하고 압축을 푼 다음 두 번 클릭 Waffle.chm
하고 "열기"를 클릭했지만 chm 파일의 어떤 요소를 클릭해도 메시지가 나타납니다.
Navigation to the webpage was canceled.
What you can try:
Retype the address.
여기서 무슨 일이 일어나고 있습니까?
답변:
요약
Microsoft 보안 업데이트 896358 및 840315는 네트워크 드라이브 (또는 UNC 경로 ) 에서 열 때 CHM 파일 내용의 표시를 차단합니다 . 이것은 바이러스 / 악성 프로그램에 대한 공격 벡터가 컴퓨터를 감염시키는 것을 막으려는 Windows의 시도이며이 chm 파일이 사용하는 "InfoTech"프로토콜을 통해 데이터를 가져 오는 .chm 파일을 차단했습니다.
Microsoft의 문제 요약 : http://support.microsoft.com/kb/896054
솔루션
Windows Server 2008을 사용하는 경우 Windows 7에서 빠른 수정이 생성되었습니다. chm 파일을 마우스 오른쪽 버튼으로 클릭하면 "yourfile.chm 속성"대화 상자가 나타나고 하단에 "Unblock"이라는 버튼이 나타납니다. 차단 해제를 클릭하고 확인을 누른 다음 chm 파일을 다시 열어보십시오. 올바르게 작동합니다. 이 옵션은 WindowsXP (SP3) 이전 버전의 Windows에서는 사용할 수 없습니다.
네트워크 드라이브에서 chm 파일을 이동하여 문제를 해결하십시오. 네트워크 드라이브를 사용 중인지 모를 수 있습니다. 지금 다시 확인하십시오. .chm 파일을 마우스 오른쪽 단추로 클릭하고 속성을 클릭 한 다음 "위치"필드를 확인하십시오. \\epicserver\blah\
다음 과 같이 두 개의 백 슬래시로 시작하는 경우 : 네트워크 드라이브를 사용하고있는 것입니다. 문제를 해결하려면 chm 파일을 복사하여 C : \ 또는 E :와 같은 로컬 드라이브에 붙여 넣으십시오. 그런 다음 chm 파일을 다시 열어보십시오. Windows가 놀라지 않습니다.
네트워크 드라이브에서 파일을 복사 / 이동할 수없는 경우 마지막 수단입니다. 이 파일이있는 곳에서 열어야하고 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로 업그레이드하십시오.
파일을 "차단 해제"하면 문제가 해결됩니다. 스크린 샷 :
Win 8 x64 :
다른 폴더로 이동하거나 폴더 이름을 변경합니다 (제 경우에는 폴더가 "c #"임). 폴더 이름에 기호를 사용하지 마십시오. 편지로 이름을 지정하십시오.
끝난.
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 ()도 포크를 인식해야합니다.
확실한 해결책은 InfoTech 프로토콜이 인트라넷 영역에서 작동하도록하는 것입니다.
레지스트리에 다음 값을 추가하면 문제가 해결되어야합니다.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001
시작으로 이동
유형 regsvr32 hhctrl.ocx
다음과 같은 성공 메시지를 받아야합니다.
"hhctrl.ocx의 DllRegisterServer 성공"
이제 CHM 파일을 다시 열어보십시오.
분명히 다른 수준의 인증이 있습니다. 내가 읽은 대부분의 기사는 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 : 테스트 용) 매핑이 작동하지 않았습니다. 단지 생각을위한 음식이며 어떤 파일도 '차단 해제'할 필요가 없었습니다. 또한 받아 들여진 '솔루션'이 문제를 해결하지 못했습니다.