因為覺得Console程式在執行時,Titlebar與Taskbar上都出現預設的Icon有點醜,就研究一下怎麼設定,還滿簡單的。
因為覺得Console程式在執行時,Titlebar與Taskbar上都出現預設的Icon有點醜,就研究一下怎麼設定,還滿簡單的。
圖一 醜醜的預設Icon
圖二 在Taskbar醜醜的預設Icon
怎麼換呢?
private extern static bool SetConsoleIcon(IntPtr handle);
在你的Console呼叫SetConsoleIcon這一個Win API就可以了
範例
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
namespace Sample
{
class Program
{
[DllImport("Kernel32.dll")]
private extern static bool SetConsoleIcon(IntPtr handle);
static void Main(string[] args)
{
Icon icon = new Icon(Path.GetFullPath("icon.ico"));
SetConsoleIcon(icon.Handle);
}
}
}
如果你有在專案屬性中設定DLL的Icon,其實也可以使用同一個設定
圖三 專案的屬性視窗
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
namespace Sample
{
class Program
{
[DllImport("Kernel32.dll")]
private extern static bool SetConsoleIcon(IntPtr handle);
static void Main(string[] args)
{
var assembly = typeof(Program).Assembly;
Console.Title = Path.GetFileNameWithoutExtension(assembly.Location);
Icon icon = Icon.ExtractAssociatedIcon(assembly.Location);
SetConsoleIcon(icon.Handle);
}
}
}
結果