今回の記事はC#でWindowsタスク常駐アプリの作り方をまとめた記事です。アプリで文字表示、クリックイベント、icon設定なども分かりやすいように紹介しているので是非参考にしてください。
Windowsタスク常駐アプリとは?
ではまずWindowsタスク常駐アプリに関してですが、デフォルトでは下記図のような画面下部に設定されているメニューバーのなかにある小さなアイコン型のアプリのことです。
今回はこのアプリをC#とVisualStudioで作成していきます。
C#でWindowsタスク常駐アプリ作成
非常に簡単です。VisualStudioでフォームアプリを作成します。
[Visual c#]の中にある[Windows フォームアプリケーション(.NET Framework)]を選択して、[OK]ボタンをクリックすれば作成できます。このままビルドすると画面が現れてしまうので下記のように「Program.cs」を修正します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Test
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new Form1());
new Form1();
Application.Run();
}
}
}
これで画面は現れずにビルドすることができます。
では次にフォームの中身(「Form.cs」)を修正していきます。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Test
{
public partial class Form1 : Form
{
//icon設定
NotifyIcon notifyIcon;
public Form1()
{
InitializeComponent();
// タスクバーに表示しない
this.ShowInTaskbar = false;
this.setComponents();
}
//タスクバーにセットするもの
private void setComponents()
{
notifyIcon = new NotifyIcon();
var iconpath = "自身の指定するパス(.bmp形式のファイル32×32サイズ)";
var bitmap = new Bitmap(iconpath);
this.notifyIcon = new NotifyIcon()
{
Icon = Icon.FromHandle(bitmap.GetHicon()),
Visible = true,
Text = "アイコンにマウスポインタを合わせたときのテキスト"
};
notifyIcon.BalloonTipTitle = "タイトル";
notifyIcon.BalloonTipText = "通知内容など";
notifyIcon.ShowBalloonTip(3000);
//アイコンクリック時のイベントを追加
notifyIcon.Click += new EventHandler(NotifyIcon1_Click);
// アイコンを表示する
notifyIcon.Visible = true;
}
//アイコンクリック時に再表示
private void NotifyIcon1_Click(object sender, EventArgs e)
{
notifyIcon.ShowBalloonTip(3000);
}
}
}
こちらが今回作成したタスク常駐アプリの全容です。
では簡単に解説していきます。
まず初めにiconのオブジェクトを定義し、そのオブジェクトに様々な設定をしていくという流れです。また、Form読み込み時に関数として読み込まれるように下記の記述を行っています。
public Form1()
{
InitializeComponent();
// タスクバーに表示しない
this.ShowInTaskbar = false;
this.setComponents();
}
icon画像の設定、クリックイベントは下記章で説明しますので飛ばして必要なところはBalloonTip関連のメソッドでしょうか。こちらでタイトルや中身を設定できます。他にも画像の挿入など様々なメソッドの種類があるので調べてみてください。
では次にicon画像の設定方法に関して説明していきます。
Windowsタスク常駐アプリにのicon設定
iconを作成する方法はいろいろありますが、Windowsの場合はペイントから「.bmp」拡張子のファイルを作成してコード上でiconに使用できるように設定すっるのが最も簡易的だと思います。
画像をコピーするなり書くなりしてペイントに貼り付けます。貼り付けてサイズを32×32のサイズかつ「.bmp」の拡張子で保存して完了です。指定のパスに保存します。
それが完了すると下記コードで変換することができるので後はその変換した画像をタスク常駐アプリに組み込めば完了です。
notifyIcon = new NotifyIcon();
var iconpath = "自身の指定するパス(.bmp形式のファイル32×32サイズ)";
var bitmap = new Bitmap(iconpath);
this.notifyIcon = new NotifyIcon()
{
Icon = Icon.FromHandle(bitmap.GetHicon()),
Visible = true,
Text = "アイコンにマウスポインタを合わせたときのテキスト"
};
では次はクリックイベントの設定を行いましょう。
Windowsタスク常駐アプリにクリックイベント追加
クリックイベントの設定は「EventHandler」で設定できるのでそちらで対応します。下記コードがメインの部分です。
notifyIcon.Click += new EventHandler(NotifyIcon1_Click);
//アイコンクリック時に再表示
private void NotifyIcon1_Click(object sender, EventArgs e)
{
notifyIcon.ShowBalloonTip(3000);
}
クリック時に呼ばれる関数の中では3秒間通知を呼ぶという内容のものです。非常に簡単です。アプリの通知文の中にボタンを作っていくことも可能なので何かそのボタンにメソッドを加えていく方法も別記事で解説していこうと考えているので是非そちらも参考にしてみてください。
では今回の記事は以上です。他にも多数のC#関連の記事を記載しているので是非そちらもあんこうにしてみてください。
コメント
[…] 「C#でタスク常駐アプリにアイコンを設定する方法ご紹介。」 […]