Mở tệp CHM tạo ra: "điều hướng đến trang web đã bị hủy"


84

Tôi đang cố gắng mở tệp .chm.

Tôi đã tải xuống nguồn, giải nén nó và nhấp đúp vào Waffle.chmvà nhấp vào "Mở" nhưng bất kể tôi nhấp vào phần tử nào trong tệp chm, tôi nhận được thông báo:

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

nhập mô tả hình ảnh ở đây

Những gì đang xảy ra ở đây?

Câu trả lời:


168

Tóm lược

Bản cập nhật bảo mật của Microsoft 896358 & 840315 chặn hiển thị nội dung tệp CHM khi được mở từ ổ đĩa mạng (hoặc đường dẫn UNC ). Đây là nỗ lực của Windows để ngăn chặn các vectơ tấn công để vi rút / phần mềm độc hại lây nhiễm vào máy tính của bạn và đã chặn tệp .chm lấy dữ liệu qua giao thức "InfoTech" mà tệp chm này sử dụng.

Bản tóm tắt của Microsoft về sự cố: http://support.microsoft.com/kb/896054

Các giải pháp

  1. Nếu bạn đang sử dụng Windows Server 2008, Windows 7, windows đã tạo một bản sửa lỗi nhanh. Nhấp chuột phải vào tệp chm và bạn sẽ nhận được hộp thoại "yourfile.chm Properties", ở phía dưới xuất hiện nút "Unblock". Nhấp vào Bỏ chặn và nhấn OK, và thử mở lại tệp chm, tệp hoạt động chính xác. Tùy chọn này không khả dụng cho các phiên bản Windows trước WindowsXP (SP3).

  2. Giải quyết vấn đề bằng cách di chuyển tệp chm của bạn TẮT ổ đĩa mạng. Bạn có thể không biết mình đang sử dụng ổ đĩa mạng, hãy kiểm tra kỹ ngay bây giờ: Nhấp chuột phải vào tệp .chm của bạn, nhấp vào thuộc tính và xem trường "vị trí". Nếu nó bắt đầu bằng hai dấu gạch chéo ngược như \\epicserver\blah\sau:, thì bạn đang sử dụng một ổ đĩa nối mạng. Vì vậy, để khắc phục, hãy sao chép tệp chm và dán vào ổ đĩa cục bộ, như C: \ hoặc E :. Sau đó, hãy thử mở lại tệp chm, các cửa sổ không phải lo lắng.

  3. Phương án cuối cùng, nếu bạn không thể sao chép / di chuyển tệp khỏi ổ đĩa nối mạng. Nếu bạn phải mở nó ở vị trí của nó và bạn đang sử dụng phiên bản Windows thấp hơn như XP, Vista, ME hoặc các phiên bản khác, bạn sẽ phải thông báo cho Windows theo cách thủ công rằng đừng lo lắng về tệp .chm này. HHReg (Tiện ích Đăng ký Trợ giúp HTML) Tự động hóa Tác vụ này. Về cơ bản, bạn tải xuống tiện ích HHReg, tải tệp .chm của bạn, nhấn OK, và nó sẽ tạo các khóa đăng ký cần thiết để yêu cầu Windows không chặn nó. Để biết thêm thông tin: http://www.winhelponline.com/blog/fix-cannot-view-chm-files-network-xp-2003-vista/

Windows 8 hay 10? -> Nâng cấp lên Windows XP.


3
Tôi không thấy nút "Bỏ chặn" trên WinXP SP3 hoặc WinVista Home Premium
GetFree

Giải pháp 1 không có trong Windows 8, có cách nào win8 dễ dàng không?
countunique

2
Không có giải pháp nào được đề xuất phù hợp với 4 giải pháp khả thi với bài viết KB tham khảo của tôi. Đặt 'MaxAllowedZone' thành '1' đã khắc phục sự cố cho tôi
Abstrask

UNBLOCK không giúp được gì, bạn phải mở bản sao tệp vào ổ đĩa cục bộ và mở nó từ ổ đĩa cục bộ (không mạng).
Erdinc Ay

1
Sự cố này cũng ảnh hưởng đến chm tải xuống từ Internet. Nút / hộp kiểm bỏ chặn có thể không ở đó ngay sau khi tải xuống. Theo kinh nghiệm của tôi, trước tiên nó yêu cầu mở chm từ hệ thống tệp cục bộ, xem nó bị hỏng, đóng nó, sau đó chỉ chuyển đến thuộc tính tệp để mở khóa nó.
Frédéric

43

"bỏ chặn" tệp sẽ khắc phục sự cố. Ảnh chụp màn hình:

nhập mô tả hình ảnh ở đây


Tôi đã quên vì tôi đã không sử dụng thủ thuật này trong một thời gian dài. Cảm ơn đã nhắc nhở tôi một lần nữa.
kta

@kaziTanvirAhsan rất vui vì tôi có thể giúp được bạn.
colemik

Di chuyển từ vị trí mạng sang vị trí cục bộ là không đủ - bạn cần phải bỏ chặn như trong ảnh chụp màn hình này. Cảm ơn @trismarck
leinad13

Điều này đã hiệu quả! Cảm ơn. Tôi sẽ không bao giờ tự tìm ra.
NilsB

không thể tìm thấy tùy chọn như vậy với win-7. thay vì mở tệp / w, tôi đã sao chép vào máy cục bộ của mình và nó hoạt động.
tsenapathy

11

Giành chiến thắng 8 x64:

chỉ cần di chuyển nó sang một thư mục khác hoặc đổi tên thư mục của bạn (trong trường hợp của tôi: thư mục của tôi là "c #"). tránh sử dụng ký hiệu trên tên thư mục. đặt tên nó bằng chữ cái.

làm xong.


Điều này cũng hoạt động. Tệp .chm của tôi nằm trong thư mục C: \ C # \ Mẫu, sau đó tôi chuyển nó sang C: \ temp và boom! Nó hoạt động! Cám ơn vì cái này. :)
klaydze

Thông minh! Tôi là người dùng Windows 10: đã phải xóa cả "#" khỏi tên tệp và tên thư mục khỏi tệp trợ giúp c # chm cũ.
Marcelo Bergweiler

11

Ngoài câu trả lời của Eric Leschinski, và bởi vì đây là stackoverflow, một giải pháp có lập trình:

Windows sử dụng các nhánh tệp ẩn để đánh dấu nội dung là "đã tải xuống". Việc cắt bỏ các khóa này sẽ bỏ chặn tệp. Tên của luồng được sử dụng cho CHM là "Zone.Identifier". Người ta có thể truy cập các luồng bằng cách thêm: tên luồng khi mở tệp. (giữ các bản sao lưu lần đầu tiên, trong trường hợp RTL của bạn làm hỏng điều đó!)

Trong Delphi, nó sẽ như thế này:

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

Tôi được thông báo rằng trên các hệ thống tệp không được phân nhánh (như FAT32) có các tệp ẩn, nhưng tôi vẫn chưa hiểu rõ về điều đó.

Ps Delphi's DeleteFile () cũng nên nhận ra các fork.


Câu trả lời rất thú vị. Tôi có thể tìm thêm thông tin về thứ fork tệp ẩn này ở đâu?
ViRuSTriNiTy

MSDN. Ví dụ: sb đã đưa ra một nhận xét rằng deletefile cũng hoạt động và tôi đã xem xét lệnh gọi liên quan trong MSDN và chính xác cách hoạt động của hàm được ghi lại. Bit Zone.Identifier cụ thể mà tôi có trên internet. Nó cũng làm việc cho ví dụ như bị chặn dled exe nếu bạn có thiết lập bảo mật cao cho MSIE
Marco van de Voort

6

Giải pháp cuối cùng là cho phép giao thức InfoTech hoạt động trong vùng mạng nội bộ.

Thêm giá trị sau vào sổ đăng ký và sự cố sẽ được giải quyết:

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

Thông tin thêm tại đây: http://support.microsoft.com/kb/896054


4

Đi tới Bắt đầu

Kiểu regsvr32 hhctrl.ocx

Bạn sẽ nhận được một thông báo thành công như:

"DllRegisterServer trong hhctrl.ocx đã thành công"

Bây giờ hãy thử mở lại tệp CHM của bạn.


1
Voww ... rằng công trình đối với tôi ... (file nhấp chuột phải, thuộc tính không hiển thị nút 'bỏ cấm' Trong khi làm việc này tốt.)
tsenapathy

3

cách khác là sử dụng phần mềm của bên thứ ba khác nhau. Liên kết này hiển thị thêm phần mềm của bên thứ ba để xem các tệp chm ...

Tôi đã thử với SumatraPDF và nó hoạt động tốt.


2

Tôi đã sửa lỗi này theo chương trình trong phần mềm của mình, sử dụng C ++ Builder.

Trước khi tôi gán tệp trợ giúp CHM, Application->HelpFile = HelpFileName , tôi kiểm tra xem nó có chứa luồng "Zone.Identifier" hay không và khi có, tôi chỉ cần xóa nó.

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

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

1

Rõ ràng có nhiều cấp độ xác thực khác nhau. Hầu hết các bài báo tôi đã đọc đều yêu cầu bạn đặt MaxAllowedZone thành '1', nghĩa là cho phép vùng máy cục bộ và vùng mạng nội bộ nhưng '4' cho phép truy cập cho các vùng 'tất cả'.

Để biết thêm thông tin, hãy đọc bài viết này: https://support.microsoft.com/en-us/kb/892675

Đây là cách sổ đăng ký của tôi trông (Tôi không chắc nó sẽ hoạt động với các thẻ đại diện nhưng nó có vẻ hoạt động với tôi):

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://*;"

Một lưu ý bổ sung, kỳ lạ là khóa "UrlAllowList" được yêu cầu để làm cho điều này hoạt động trên một PC khác nhưng không phải là thử nghiệm của tôi. Nó có thể không bắt buộc nhưng khi tôi thêm nó vào, nó đã khắc phục được sự cố. Người dùng có thể chưa đóng tệp gốc hoặc những thứ tương tự. Vì vậy, chỉ là một sự cân nhắc. Tôi khuyên bạn nên thử ít nhất và kiểm tra nó, sau đó thêm nếu cần. Sau khi xác nhận, bạn có thể triển khai nếu cần. Chúc may mắn!

Chỉnh sửa: PS Một phương pháp khác đã hoạt động là ánh xạ đường dẫn đến mạng cục bộ bằng cách sử dụng mklink / d (liên kết tượng trưng trong Windows 7 hoặc mới hơn) nhưng ánh xạ ký tự ổ đĩa mạng (Z: để thử nghiệm) không hoạt động. Chỉ là thức ăn để suy nghĩ và tôi không phải 'Bỏ chặn' bất kỳ tệp nào. Ngoài ra, 'Giải pháp' được chấp nhận không giải quyết được vấn đề cho tôi.


Không sao, tôi rất vui vì ai đó đã được hưởng lợi. Tốt!
jacktrader
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.