- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [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
- [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
[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!