Trước hết tôi muốn xin lỗi về cái topic name hơi khó hiểu. Vấn đề là tôi có làm một cái trình soạn thảo văn bản đơn giản kiểu WordPad. Tôi muốn là khi click 1 file text và chọn Open With = soft của tôi thì nó có thể hiểu và hiển thị ra được (chứ không phải bật soft lên rồi Open file đó) . Các bạn có thể giúp tôi vấn đề này đc không?
Xin cám ơn đã quan tâm.
None!
ý bạn ấy là double click vào file do soft bạn ấy tạo ra thì OS sẽ tự mở soft của bạn ấy và load file đó. Chứ kô cần phải mở soft rùi chọn menu Open... gì gì đó rùi mới mở file. (Giống double click vào file *.doc thì MS Word tự mở và load file *.doc đó).
Theo mình thì cái này liên quan đến registry. Ban thử nghiên cứu xem.
Cheer!
Cám ơn các bạn. Ý câu hỏi của mình đúng như bạn Cáo nói đó.
Mình sẽ thử tìm hiểu về cái registry xem.
Chào bạn martin, cũng lâu rồi nhỉ, mình vừa tìm được một cách nhưng app dụng cho soft của mình vẫn chưa được. Nếu bạn đã tìm hiểu được rồi thì vào trao đổi với mình nhé. Sau đây là cách của mình:
Do tool mà mình viết có chứa năng ghi ra file, cho nên mình đã làm cho file xuất ra này cũng có một Icon tương ứng với ý muốn của mình như sau:
phải có sử dụng thư viện:
Visual C# Code:
using Microsoft.Win32
Đăng ký registry cho file của mình
Visual C# Code:
{ RegistryKey key; // Dòng 1* { } // Dòng 2* subkey = @"ApplicationMessage.File\DefaultIcon"; { } subkey = ".amf"; { } }
Dòng 1*: Bạn vào Start->Run->gõ regedit rồi Enter -> Cửa sổ Regístry sẽ mở ra. Bạn hảy Ctrl+F rùi gõ thữ xmlfile để tìm kiếm thì nó sẽ hiện ra hình như vậy:
Bạn chú ý thư mục shell/open/command thôi. Nó có một Register key cho file XML dùng để khi double click vào một file *.xml bất kỳ nó sẽ tự mở = IE (theo đường dẫn ở cột Data).
Tương tự như vậy bạn cũng đăng kí như Dòng 1* để có thể open file của bạn chỉ với 1 cú double-click.
Tiếc là mình làm chưa được đối với tool của mình![]()
Dòng 2*: Thư mục DefaultIcon trên hình dùng để lưu một file Icon cho chính file của bạn. Do đó nếu bạn muốn file của mình có Icon thế nào thì chỉ việc cho đường dẫn tới Icon đó thôi. Ở đây do tool của mình (file *.exe) đã đc chính mình cho nó một Icon rùi nên mình chỉ việc cho đường dẫn tới thư mục Application.ExecutablePath = Bin\Debug để lấy chính Icon của file *.exe lun.
Code cho Program.cs
Visual C# Code:
{ //Gọi hàm RegisterAppMsgFile(); { Application.EnableVisualStyles(); } FileShellExtension.RegisterAppMsgFile(); .... }
Sau khi build và chạy, bạn xem hình để bít kết quả.
Chúc bạn có thể thực hiện được nhé![]()
Cheer
Đã được chỉnh sửa lần cuối bởi OWickedFox : 22-11-2008 lúc 11:49 PM. Lý do: chưa đầy đủ nội dung cần viết
tôi đã tìm ra cách làm như vậy rồi, và rất là ok.
Nếu như có thể bạn hãy liên hệ với tôi qua nick yahoo: dang_viet_anh_hp
chúng ta sẽ cùng thảo luận
Cách làm của bạn là gì vậy. Xin hãy chia sẻ với mọi người. Mình cũng đang cần
mà ko biết search trên mạng ra sao nữa.
Keep It Simple, Stupid![]()
mình có làm qua cái này và chạy rất ổn.bạn thử làm theo cách này xem sao?
bạn paste cái đoạn code này trong Form load sau lần chạy đầu tiên thì những file .min khi double click vào nó sẽ mở trương trình với đường dẫn mình thiết lập trong form load. bên trên đó.Visual C# Code:
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts", true); rkApp.CreateSubKey(".min"); RegistryKey rkApp1 = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.min", true); rkApp1.CreateSubKey("OpenWithList"); RegistryKey rkApp2 = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.min\\OpenWithList", true); rkApp2.SetValue("a", Application.ExecutablePath.ToString().Substring(Application.ExecutablePath.ToString().LastIndexOf("\\") + 1, Application.ExecutablePath.ToString().Length - Application.ExecutablePath.ToString().LastIndexOf("\\") - 1));
những gì bạn cần thay đổi chính là phần mở rộng của file (bài này của tôi là .min)
good luck