2015-06-08 15 views
7

Trong đơn đăng ký của tôi, tôi muốn có thể thực thi tệp có tên và tiện ích tùy ý bằng cách sử dụng chương trình được liên kết với một tiện ích mở rộng khác.Làm cách nào để thực thi tệp với ứng dụng được liên kết của tiện ích khác?

Ví dụ: giả sử tôi có tệp có tên file.dat, nhưng tôi muốn mở tệp bằng Notepad, như được đặt tên là file.txt hoặc file.dat.txt. Ngoài ra, tôi không có quyền đổi tên tệp, vì vậy đó là câu hỏi.

Nếu tệp được gọi là file.txt, tôi có thể gọi ShellExecute. Nhưng điều đó không thành công khi gọi file.dat; Windows phàn nàn rằng không có liên kết cho tệp đó.

Tôi không muốn mã hóa một tệp thực thi cụ thể, bởi vì (trong ví dụ trên) người dùng cuối có thể đã liên kết .txt tệp với Wordpad thay vì Notepad. Trong trường hợp này, tôi muốn mở file.dat bằng Wordpad.

Trả lời

10

Gọi ShellExecuteEx và chỉ định thành viên lpClass của cấu trúc SHELLEXECUTEINFO. Lưu ý rằng bạn phải bao gồm SEE_MASK_CLASSNAME trong thành viên fMask.

Ví dụ: đặt lpClass thành '.txt' để yêu cầu mở tệp bằng chương trình được liên kết với tiện ích mở rộng .txt.

Các vấn đề liên quan