- [DATABASE] Hướng dẫn tạo Procedure String Split in Mysql
- [C#] Thiết lập dấu (,) hay dấu (.) ở định dạng số đúng với định dạng số Việt Nam
- [C#] Chia sẻ source code Game Spin Lucky Wheel
- [C#] Hướng dẫn Encode and Decode HTML
- Hướng dẫn tạo tài khoản Chat Open AI GPT tại Việt Nam
- [C#] Hướng dẫn thay đổi giao diện ứng dụng Winform theo giao diện của Windows
- [VB.NET] Hiệu ứng Acrylic, Mica, Tabbed Blur Effect trên Winform
- [DEVEXPRESS] Hướng dẫn sử dụng HTML Template trên Combobox Edit
- [C#] Chia sẻ source code Orange Rain in Winform
- [DEVEXPRESS] Hướng dẫn sử dụng HTML Template trên XtraMessageBox Winform Devexpress 22.2.3
- [DEVEXPRESS] Hướng dẫn sử dụng HTML and CSS Code Viewer trên Winform
- [C#] Number Effect Counter up and down in winform
- [C#] Hướng dẫn Supend and Resume Process ID in Winform
- [C#] Hiển thị line number trên Richtextbox Winform
- [C#] Fake Blue Screen BSOD in winform
- [C#] Chia sẽ code demo sử dụng Async Parallel Foreach and For in Winform
- [C#] Sử dụng ActionBlock run X task at time winform
- [C#] Hướng dẫn sử dụng Property Grid để lưu và tải lại thông tin cấu hình user trên winform
- [C#] Hướng dẫn bắt sự kiện khi đối tượng di chuyển chạm vào object trên winform HitTest Object
- [SQLSERVER] Sử dụng GROUP BY và ROLLUP, CUBE để thống kê dữ liệu
[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!