- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [SOFTWARE] Giới thiệu bộ phần mềm tính Kết Cấu Thép HatteSale, Mộng Đơn, Dầm, Sàn, Móng Cọc, Vách, Xà Gồ, Tính Tải Trọng
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
- [C#] Hướng dẫn viết ứng dụng chat với Gemini AI Google Winform
- Hướng dẫn khóa file bằng nhiều process id, không cho xóa tập tin
- Hướng dẫn cách tạo Product Id cho ứng dụng phần mềm XXXXX-XXXXX-XXXXX-XXXXX
- [SQLSERVER] Hướng dẫn tạo script sql từ ứng dụng Sqlserver management Studio
- [C#] Hướng dẫn sử dụng thư viện AutoITx lấy id và password Ultraviewer trên winform
- [VB.NET] Hướng dẫn lấy thông tin tài khoản đăng nhập windows và khởi động lại ứng dụng ở chế độ Administrator
- [C#] Sử dụng thư viện Polly gửi lại request api khi request bị lỗi hay rớt mạng
- [DEVEXPRESS] Chia sẻ source code tạo báo cáo report in tem nhãn label trên C# winform
- [DEVEXPRESS] Hướng dẫn vẽ biểu đồ Bar Chart trên Winform
- [C#] Tạo form đăng nhập và đăng ký với hiệu ứng Sliding Animation Effect
- [C#] Hướng dẫn tạo thanh toán đơn hàng qua mã vạch VietQR sử dụng API PayOS hoàn toàn miễn phí
- [C#] Hướng dẫn ghi log ra RichTextBox giống Console trên Winform sử dụng thư viện Serilog
- [C#] Hướng dẫn cách tạo mã QR Code trên file Excel
[C#] Hướng dẫn tạo icon cho file extension mới trong winform
Xin chào các bạn, bài viết hôm nay mình sẽ hướng dẫn các bạn các nhúng icon vào file mới tạo (icon file extension) trong lập trình C#.
[C#] Nhúng ICON vào file mới tạo trong winform
Thường các bạn thấy các file của ứng dụng, ví dụ như file: word, excel, pdf... thì khi chúng ta cài chương trình đọc vào, thì icon của file đó nó sẽ giống icon của ứng dụng chương trình đó.
Các bạn lập trình, đôi lúc chúng ta cần tạo ra một kiểu file với phần mở rộng mới, theo tên ứng dụng của mình.
Mình ví dụ file của mình có đuôi *.thaomeo
, thì khi chúng ta tạo file này ra thì hình ảnh icon nó là màu trắng.
Vậy trong bài viết này, mình sẽ chia sẽ cho các bạn cách để add icon đó vào file có phần mở rộng của mình.
Và khi click vào file có đuôi mở rộng của mình, sẽ tự động mở lên ứng dụng của mình luôn.
VD: Khi bạn click vào file word thì nó tự động mở MS Word (Click vào file đuôi *.thaomeo
, mở ứng dụng của mình).
Để thay đổi icon của một phần mở rộng của ứng dụng, các bạn sẽ chỉnh sửa trong Regedit của Windows.
Các bạn có thể tìm hiểu, cách chỉnh bằng tay trên windows nhé. Trong bài này, mình chỉ hướng dẫn các bạn cách nhúng icon vào trên phẩn mểm.
Giao diện demo ứng dụng nhúng Icon file C#:
- Hình ảnh demo ứng dụng sau khi chạy chương trình.
Và khi chúng ta click hoặc right click vào file có đuôi mở rộng *.thaomeo, nó sẽ cho phép mình mở file này bằng ứng dụng của mình.
Trong bài viết, mình có sử dụng thư viện CustomFileExtensionControl.dll
, các bạn download source code ở cuối bài để tích hợp thư viện này vào project của mình nhé.
Source code Nhúng Icon vào file mới C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.InteropServices;
using CustomFileExtensionControl;
namespace Embed_Icon_File_Extension
{
public partial class Form1 : Form
{
CustomFileExtensionControl.App app1 = new CustomFileExtensionControl.App();
CustomFileExtensionControl.App app2 = new CustomFileExtensionControl.App();
CustomFileExtension customFileExtension1 = new CustomFileExtension();
private const int WM_COPYDATA = 0x4A;
struct COPYDATASTRUCT
{
public IntPtr dwData;
public int cbData;
[MarshalAs(UnmanagedType.LPStr)]
public string lpData;
}
public Form1()
{
InitializeComponent();
this.MaximizeBox = false;
this.StartPosition = FormStartPosition.CenterScreen;
customFileExtension1.ApplicationName = "Embed Icon File Extension.exe";
customFileExtension1.Description = "THAOMEO\'s file";
customFileExtension1.EmbeddedIcon = false;
customFileExtension1.Extension = ".thaomeo";
customFileExtension1.Handler = "laptrinhvb.net";
customFileExtension1.IconName = "logo_dhq_icon.ico";
customFileExtension1.IconPosition = 0;
customFileExtension1.OpenText = "Mở ứng dụng với Laptrinhvb.net";
app1.AppPath = "C:\\Users\\Administrator\\Desktop\\thaomeo.exe"; // Add ứng dụng vào menu openwith
app2.AppPath = "C:\\Users\\Administrator\\Desktop\\thaomeo.exe";
this.customFileExtension1.OpenWith.Add(app1);
this.customFileExtension1.OpenWith.Add(app2);
}
public Form1(string[] args)
{
InitializeComponent();
OpenFile(args);
}
FileStream fs;
StreamReader sr;
private void OpenFile(string[] args)
{
for (int i = 0; i < args.Length; i++)
{
fs = new FileStream(args[i], FileMode.Open);
sr = new StreamReader(fs);
MessageBox.Show(sr.ReadToEnd());
}
fs.Close();
fs.Dispose();
sr.Close();
sr.Dispose();
}
private void btnInstall_Click(object sender, EventArgs e)
{
customFileExtension1.RegisterFileType();
}
private void btnUninstall_Click(object sender, EventArgs e)
{
customFileExtension1.RemoveFileType();
}
protected override void WndProc(ref Message message)
{
if (message.Msg == WM_COPYDATA)
{
COPYDATASTRUCT mystr = (COPYDATASTRUCT)message.GetLParam(typeof(COPYDATASTRUCT));
Type mytype = mystr.GetType();
mystr = (COPYDATASTRUCT)message.GetLParam(mytype);
string[] args = customFileExtension1.GetData(mystr.lpData);
OpenFile(args);
}
base.WndProc(ref message);
}
}
}
Thanks for watching!