2010-02-16 28 views
7

Tôi đang cố gắng tải tệp CHM để mở một chủ đề cụ thể bằng C#.Liệt kê tất cả các chủ đề từ một tệp CHM

Tôi đã cố gắng sử dụng

Help.ShowHelp(this, path, HelpNavigator.Topic, "TopicTitle"); 

nhưng nó không tìm thấy trang. Tôi không phải là chìa khóa trong tiêu đề chủ đề một cách chính xác. Có cách nào để tôi có thể lấy lại tất cả các chủ đề từ một tệp CHM theo cách lập trình để tôi có thể xem chúng là gì không?

Trả lời

7

Không, hàm HtmlHelp API quá thô sơ để hỗ trợ liệt kê các chủ đề. Bạn có thể sử dụng trình quản lý tệp 7-zip để xem bên trong tệp .chm. Nhấp chuột phải vào tệp và chọn "Mở bên trong". Hoặc sử dụng công cụ trợ giúp được sử dụng.

4

Nếu bạn mở tệp CHM và nhấp chuột phải vào trang trợ giúp, bạn có thể chọn lệnh Thuộc tính.
Ở giữa trang Thuộc tính, có một thuộc tính được gọi là: Địa chỉ (URL).
Kết thúc URL chứa chuỗi chủ đề được sử dụng để mở tệp trợ giúp đến đúng trang.

Dưới đây là một ví dụ: mk: @MSITStore: C: \ Program% 20Files \ Sisulizer% 202.010 \ Sisulizer.chm ::/OutputFiles.htm

Nếu URL quá dài để xem chủ đề này tại cuối cùng, bạn có thể chọn địa chỉ bằng chuột và cuộn đến cuối.

Đây là ảnh chụp màn hình.

enter image description here

+0

tuyệt vời, làm những gì bạn nói cho một chuỗi neo khác nhau hơn so với một trong các tập tin HTML. Nó thay đổi vị trí cuộn của tệp trợ giúp VÀ nội dung được đánh dấu trong danh sách ở bên trái (sử dụng tên neo 'rõ ràng' chỉ thay đổi tên cũ). Cảm ơn! –

0

Tôi không chắc chắn về cách truy lục các chủ đề từ CHM theo cách lập trình. Nhưng tôi đã thay đổi mã một dòng theo cách này và nó hoạt động.

Help.ShowHelp(this, path , HelpNavigator.TopicId,"TopicTitle"); 
1

Bạn cũng có thể sử dụng sau đây, nơi path là đường dẫn đến file chm:

using System.Windows.Forms; 

Help.ShowHelp(this, path, HelpNavigator.KeywordIndex, "Topic title"); 
Các vấn đề liên quan