FIRST, bạn cần thiết lập liên kết tệp để loại tệp của bạn được liên kết với ứng dụng của bạn và mở loại tệp sẽ chạy ứng dụng của bạn.
Bạn có thể làm các hiệp hội tập tin programatically, có một số chi tiết ở đây như đã đề cập: http://www.codeproject.com/KB/dotnet/System_File_Association.aspx
Bạn cũng có thể làm điều đó thông qua dự án cài đặt cho bạn ứng dụng nếu bạn có một. Đây là đường dẫn dễ dàng hơn cho "người mới". Thông tin chi tiết về cách sử dụng studio trực quan để có được dự án thiết lập để thêm liên kết tệp và cũng đặt biểu tượng cho tệp đó ở đây: http://www.dreamincode.net/forums/topic/58005-file-associations-in-visual-studio/
Nếu không, nếu bạn sử dụng InnoSetup, Wix, thì tôi cho rằng bạn có thể xem hướng dẫn trình cài đặt để tạo liên kết cho bạn.
SECOND, bạn cần phải có ứng dụng của mình chấp nhận đối số dòng lệnh. (Các) tệp đã mở được (được) chuyển thành (các) đối số dòng lệnh. Bạn cần xử lý các đối số để lấy đường dẫn/tên tệp và mở (các) tệp đã cho.Có một mô tả hay về điều này ở đây với mã: C# Command Line arguments problem in Release build
Trong trường hợp của bạn, thay vì MessageBox.Show(s)
trong trình xử lý biểu mẫu, bạn sẽ gọi phương thức phân tích đối số riêng biệt của bạn. Đối với một ứng dụng đơn giản mà chỉ chấp nhận những file tên để mở như các đối số, điều này có thể đơn giản như
foreach (string filePathName in Args)
DoNamedFileOpen(filePathName);
Mã của bạn cũng có thể có một phương pháp mà có thể trích xuất từ tập tin các giá trị cho datafields bạn quan tâm v.v.
Đây là cách tiếp cận đơn giản cho vấn đề có các liên kết tệp được cài đặt trên ứng dụng của bạn, có biểu tượng và ứng dụng của bạn xử lý việc mở các tệp đó.
Tất nhiên, có rất nhiều lựa chọn khác, như hiệp hội tập tin thời gian chạy (yêu cầu người dùng nếu họ muốn hiệp hội), phát hiện các hiệp hội "vỡ", vv
Câu hỏi này được một thời gian dài ở đây nhưng tôi hy vọng điều này hữu ích cho các tìm kiếm mới
Ông rõ ràng muốn thực hiện việc này theo lập trình. Thẻ là C# và nó nói rằng ông muốn liên kết này được thực hiện với trình cài đặt của mình. – Brad