自作アプリケーション(コピーした文字のプレーンテキスト化)

自作アプリケーションのメモです。

仕事でも私用でも、パソコンを使用する上でテキストのコピーとペーストはよく利用する機能の一つですが ペーストしたときに書式も含まれていて困ることがあります。

書式なしで貼り付け機能のあるアプリケーションであればいいのですが、その機能が無いアプリケーションも多く、メモ帳を使って書式を取り除いたりするのが手間でした。 そこで、実行するとクリップボード内のテキストをプレーンテキストに変換するアプリケーションを作ってみました。

ランチャやタスクバーにリンクしておくと、すぐに実行できて便利です。 文字列の内容によって処理(置換や削除など)を追加すると、色々と応用できそうです。

今回はMicrosoft Visual Studio Community 2019を使用しています。


新しいプロジェクトの作成

新しいプロジェクトを「コンソールアプリ(.NET Framework)」で作成します。 f:id:ArtificialArts:20200620095558p:plain


プロジェクトの設定

任意の名前を入力します。フレームワークは「.NET Framework 4.7.2」を設定しました。 f:id:ArtificialArts:20200620095911p:plain


コンソールの非表示設定

アプリケーションの実行時にコンソール画面を表示させないようにするため、プロジェクトのプロパティから出力の種類を「Windowsアプリケーション」に設定します。

f:id:ArtificialArts:20200620100657p:plain


usingディレクティブの追加

Clipboardの読み書きを行うため、usingディレクティブに「System.Windows.Forms」を追加します。

using System.Windows.Forms;

f:id:ArtificialArts:20200620095246p:plain


STAThreadAttribute属性の追加

STAThreadAttribute属性を付けないとClipboardでテキストの取得ができないため、[STAThread]を追加します。

[STAThread]
static void Main(string[] args)
{
}

f:id:ArtificialArts:20200620095325p:plain


プログラムの記述

最後にプログラムをMain関数内に書きます。クリップボード内のデータが文字列ではなかった場合にはString.Emptyとなるので、クリップボード内が文字列の場合のみ処理を行うようにします。 Clipboardからデータを取得した時点でText形式になっているため、そのままクリップボードにコピーします。

f:id:ArtificialArts:20200620100353p:plain


プログラム全体

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);
            }
        }
    }
}


参考ページ

www.atmarkit.co.jp

dobon.net

dobon.net

dobon.net