memopad.exe 制作の備忘録
Windows 標準の「メモ帳」の機能はそのままに、背景色・文字色・フォントを自由に変えられるエディタを作るプロジェクトの記録。
大きなファイルを開くと固まる不具合(FB-19)は v0.10.0 で解消し(本文のエディタを Scintilla に変更)、 インストーラの配布を再開しました。最新は v0.10.5(Ctrl+Z の取り消しをメモ帳と同じ単語ごとに、右クリックに「MemoPad で開く」、初回起動の短縮、 「プログラムから開く」の候補の拡大など)で、不具合のある v0.6.0〜v0.9.1 は取り下げたままです。 経緯は step3 の 15 節にまとめています。
プロジェクトの目的
シンプルなエディタとしてメモ帳を使う機会は多いが、背景色と文字色を自由に設定できない点に不満がある(フォントはメモ帳でも変更できる)。そこで、メモ帳の使い勝手を保ったまま次の機能を加えた memopad.exe を制作する。
- 背景色・文字色の変更(標準色 16 色+カラーピッカーで簡単に変更できること)
- インストーラ形式で配布できること
| 項目 | 内容 |
|---|---|
| 制作環境(予定) | Visual Studio 2022(C#)、Inno Setup(インストーラ) |
| 調査対象のメモ帳 | Windows 11 Pro 上の Windows メモ帳(Store 版)11.2607.14.0 |
| 完了の定義 | step3 のフィードバックが 0 件になった時点を v1.0 とする |
進行 step と備忘録
step1:メモ帳の機能洗い出し
本家メモ帳のメニュー・設定・ショートカット・ダイアログを UI Automation で列挙し、スクリーンショット付きで整理。memopad で再現する範囲を仕分けする。
step2:memopad.exe の作成
step1 の仕分けに基づき C#/WPF(.NET 9)で実装。タブ・検索置換・印刷などメモ帳の機能に、背景色・文字色(標準 16 色+カラーピッカー)とテーマを加え、Inno Setup でインストーラを作る。
step3:完成品のフィードバック対応
実際に使って気づいた点を 1 件ずつ記録し、バージョンを分けて対応する。v0.2.0 で IME 入力の遅延をメモ帳並みに改善(エディタを RichEdit に置き換え)、v0.3.0 でタブ→メニュー→本文の並びと高さをメモ帳に合わせ、v0.4.0 で「色変更」ダイアログ(PICO-8 の 16 色)に統合、v0.5.0 で目に優しい配色 16 パターンを追加した。v0.8.0 で起動時間をメモ帳と同等にして MemoPad に改名、v0.9.0〜v0.9.1 でタイトル行のウィンドウ操作、メニューの見た目、ドラッグ&ドロップで開いた直後の状態を直した。v0.9.2 でホイールで最後の行まで送れない不具合と、折り返しなしで横にスクロールできない不具合を直した。v0.10.0 では、大きな日本語ファイルで画面が固まる不具合(FB-19)のために本文のエディタを RichEdit から Scintilla に差し替え、v0.10.1 で開いた直後のウィンドウ移動のカクつき(FB-21)を直した。v0.10.2 で端末を起動して最初の起動が遅い件(FB-22)、行頭のカーソルが見づらい件(FB-23)、メニューのアクセス キーが効かない件(FB-24)を直した。v0.10.3 で 1920×1080 の画面で配色パターンの画面が切れる不具合(FB-26)を直し、インストーラのアイコンを標準に戻した(FB-27)。v0.10.4 で「プログラムから開く」の候補を .txt だけからソース コードや設定ファイルなど 83 種類に広げた(FB-29)。v0.10.5 で Ctrl+Z の取り消しの単位をメモ帳に合わせ(FB-30)、右クリックに「MemoPad で開く」を加えた(FB-31・32)。フィードバックが 0 件になったら v1.0。
更新履歴
- 2026-11-01:無料のコード署名(SignPath Foundation)の審査は、公開の場での知名度がまだ足りないとして通らなかった。ユーザーと相談のうえ、右クリックの最初の階層に「MemoPad で開く」を出すこと(FB-32 の残り)は見送りとし、「その他のオプションを確認」の中に出す v0.10.5 の形で完了とした。Microsoft Store に MSIX で出す方法(無料)も比べたが、最初の階層に出るのは Store から入れた人だけで、手間に見合わない(step3 の 26.7 節)。
- 2026-10-31:v0.10.5 の動作確認が済み、GitHub Releases で公開した。
- 2026-10-31:v0.10.5 を作成。元に戻す(Ctrl+Z):続けて打った分が 1 回で全部消えていたのを、メモ帳と同じく「単語とその後ろの空白」ごと、日本語は確定ごとに取り消すようにした(FB-30)。右クリックの「MemoPad で開く」:すべてのファイルの右クリックに追加し、「プログラムから開く」が出ない .bat も MemoPad で開けるようにした(FB-31・32)。Windows 11 では「その他のオプションを確認」の中に出る。最初の階層に出すには信頼された証明書での署名が要るので、無料のコード署名(SignPath Foundation)を申請する(step3 の 25〜26 節)。
- 2026-10-31:v0.10.4 の動作確認が済み(FB-23・24・26〜29)、GitHub Releases で公開した。v0.10.2・v0.10.3 は公開せず、その修正は v0.10.4 に含まれる。
- 2026-10-30:v0.10.4 を作成(ユーザーの確認待ち。v0.10.3 の修正も含む)。インストーラの「プログラムから開く」の候補に入れる拡張子を、.txt だけから .log・.md・.json・.py・.cs・.html などと拡張子なしのファイルまで 83 種類に広げた。既定のアプリは変えない。上書きインストール・アンインストール・入れ直しで、関連付けが 1 件も変わらないこと、作ったキーが残らないことを確かめた(FB-29。step3 の 24 節)。
- 2026-10-30:v0.10.3 を作成(ユーザーの確認待ち)。配色パターンの画面:1920×1080・表示スケール 150 % の端末で下が切れてボタンが押せなかったのを、カードと余白を詰めて高さ 752 → 611 px にして直した。さらに低い画面ではパターンの一覧だけがスクロールする(FB-26)。インストーラのアイコンを v0.5 までの Inno Setup 標準に戻した(FB-27)。確認中に見つけた、アクセス キー付きのボタン 8 個の名前が読み上げソフトから空に見える不具合も直した(FB-28)。初回起動の「ひと呼吸」(FB-25)は、残りの 8 割が .NET ランタイムと Windows Forms 本体で、サインイン時の先読みはサインインのたびに裏で仕事をさせることになるため、相談のうえ今のままにした(step3 の 20〜23 節)。
- 2026-10-28:v0.10.2 を作成(ユーザーの確認待ち)。初回起動:起動時に使わない WPF 本体(約 23 MB)の読み込みと Scintilla の電子署名の検証をやめ、キャッシュに無い状態からの起動を 902 → 737 ms にした(FB-22)。行頭のカーソル:左の余白が灰色で塗られ、濃い配色でキャレットが紛れていたのを直し、余白の幅もメモ帳に合わせ、Windows の「テキスト カーソルの太さ」に従うようにした(FB-23)。確認中に見つけたメニューのアクセス キーが効かない不具合も直した(FB-24。step3 の 17〜19 節)。
- 2026-09-13:v0.10.1 で「大きなファイルを開いた直後だけウィンドウ移動がカクつく」不具合(FB-21)を修正した。原因は Scintilla が折り返しの計算を空き時間に 10 ms ずつ進めていることで、対策 4 案を入力レスポンス・起動時間とあわせて実測し、ウィンドウの移動・リサイズ中だけ計算を止める案を選んだ(ドラッグ中の位置の更新間隔 71.4 ms → 16.7 ms、入力・起動・見た目は変化なし。step3 の 16 節)。
- 2026-09-13:v0.10.0 の動作確認が済み、インストーラの配布を再開した。あわせて FB-21 の原因を調べた(step3 の 15.9)。
- 2026-09-12:v0.10.0 で本文のエディタを RichEdit から Scintilla に差し替え、大きなファイルで固まる不具合(FB-19)を解消した。10 MB・12 万行の日本語ファイルで、操作を受け付けない時間の最長が 43.5 秒 → 0.03 秒。原因は日本語と英字が混ざった行の文字幅を GDI に問い合わせる処理で、RichEdit の設定でも Windows App SDK の WinUI でも避けられなかった。
- 2026-09-12:大きなファイル(10 MB/12 万行の日本語テキスト)を開くと固まり、その後の操作でも固まる不具合(FB-19)の報告を受け、GitHub Releases のインストーラをすべて取り下げた。サイトとソース コードの公開は継続し、原因調査と修正に入る。
- 2026-09-11:v0.9.2 でマウス ホイールが末尾の空行まで届かない不具合を修正(ホイールを自前のなめらかスクロールに置き換え)。あわせて、確認中に見つけた「右端で折り返す」オフで横スクロールバーが出ない不具合を修正。起動時間と大きなファイルの読み込み時間が変わらないことも実測した。
- 2026-09-08:v0.9.1 でドラッグ&ドロップで開いたファイルが編集済みになる不具合を修正。メニューの字下げをメモ帳と同じ控えめな量に調整。
- 2026-09-08:v0.9.0 でタイトル行のドラッグ移動・ダブルクリックでの最大化・四辺のリサイズを修正(当たり判定を親ウィンドウへ譲るようにした)。メニューの字下げと文字の上下位置をメモ帳に合わせた。
- 2026-09-08:v0.8.0 でメイン ウィンドウを Windows Forms に作り直し、起動時間をメモ帳と同等(ウィンドウ表示 221 ms 対 211 ms)にした。あわせて名称を MemoPad に改め、アイコンを新デザインに差し替えた。
- 2026-09-08:v0.7.0 で起動時間を調査・短縮(ソフトウェア描画、設定 JSON のソース ジェネレーター化、アセンブリの先読み)。WPF の下限が約 400 ms でメモ帳(約 200 ms)に届かないことが判明した。
- 2026-09-07:v0.6.0 でアプリ アイコンを新デザインに変更。GitHub Pages で紹介ページと備忘録を公開。
- 2026-09-07:v0.5.2 で検索バーの×・プレビュー枠の高さ・キャプション ボタンのツールチップの表示崩れ(3 回目のフィードバック)を修正。
- 2026-09-07:v0.5.1 でタブをクリックしても切り替わらない不具合(2 回目のフィードバック)を修正。
- 2026-09-07:v0.5.0 で配色パターン 16 種(プレビュー付き)を追加。初回フィードバック 4 件を対応済みにした。
- 2026-09-07:v0.4.0 で「背景色」「文字色」を「色変更」ダイアログに統合し、16 色を PICO-8 パレットにした。
- 2026-09-07:v0.3.0 で上部の並び(タブ→メニュー→本文)と高さをメモ帳に合わせた。
- 2026-09-07:step3(フィードバック対応)の備忘録を公開。v0.2.0 で IME 入力の遅延を改善。
- 2026-09-06:step2(memopad.exe の作成)の備忘録を公開。
- 2026-09-06:サイト開設。step1(メモ帳の機能洗い出し)を公開。