自作アプリケーション(コピーした文字のプレーンテキスト化)
自作アプリケーションのメモです。
仕事でも私用でも、パソコンを使用する上でテキストのコピーとペーストはよく利用する機能の一つですが ペーストしたときに書式も含まれていて困ることがあります。
書式なしで貼り付け機能のあるアプリケーションであればいいのですが、その機能が無いアプリケーションも多く、メモ帳を使って書式を取り除いたりするのが手間でした。 そこで、実行するとクリップボード内のテキストをプレーンテキストに変換するアプリケーションを作ってみました。
ランチャやタスクバーにリンクしておくと、すぐに実行できて便利です。 文字列の内容によって処理(置換や削除など)を追加すると、色々と応用できそうです。
今回はMicrosoft Visual Studio Community 2019を使用しています。
新しいプロジェクトの作成
新しいプロジェクトを「コンソールアプリ(.NET Framework)」で作成します。
プロジェクトの設定
任意の名前を入力します。フレームワークは「.NET Framework 4.7.2」を設定しました。
コンソールの非表示設定
アプリケーションの実行時にコンソール画面を表示させないようにするため、プロジェクトのプロパティから出力の種類を「Windowsアプリケーション」に設定します。
usingディレクティブの追加
Clipboardの読み書きを行うため、usingディレクティブに「System.Windows.Forms」を追加します。
using System.Windows.Forms;
STAThreadAttribute属性の追加
STAThreadAttribute属性を付けないとClipboardでテキストの取得ができないため、[STAThread]
を追加します。
[STAThread] static void Main(string[] args) { }
プログラムの記述
最後にプログラムをMain関数内に書きます。クリップボード内のデータが文字列ではなかった場合にはString.Emptyとなるので、クリップボード内が文字列の場合のみ処理を行うようにします。 Clipboardからデータを取得した時点でText形式になっているため、そのままクリップボードにコピーします。
プログラム全体
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace PlainTextiz { class Program { [STAThread] static void Main(string[] args) { string clipStr = Clipboard.GetText(); if (string.IsNullOrEmpty(clipStr) == false) { Clipboard.SetText(clipStr); } } } }