Brynhildr

KeroRemote

リモートデスクトップエンジニアのブログ。

テキストエディター

テキストエディターの開発とゆー新企画です。Brynhildrのログを表示する時は何を使われています?

そもそもBrynhildrのログ機能を使っている人が少ないとは思ってるんですが、たまたまいつも使っている端末とは別の端末でBrynhildrのログを表示する際に、ログをメモ帳で開いたんですが、ちょっと何か違うなと思ったもので。なんかこースマートじゃないなと。

実は、10年くらいに前にテキストエディターを自作した事がありまして、今でもそれをメインに使ってるんですよね。

インタビューで「テキストエディターは何を使われています?やっぱり秀丸ですか?それともTeraPadですか?もしかしてMIFESですか?」と聞かれたら「いえ、自作のテキストエディターです。」と答えようかと思ってますけど、まだチャンスは来てないです。

そんな自作のテキストエディターをメモ帳の代わりに使ってるんです。あと、VisualStduioを立ち上げるまでもない時とかもですね。あと、PHPのコードを書く時のメインエディターとして利用してますね。てなくらいに使い込んでる自作のテキストエディターなんです。

その自作のテキストエディターを入れていない端末でログを開いたのですが、Brynhildrにこのテキストエディター機能を実装してはどうかと。正確にはログビューワーですかね。ま、内容も見やすいよーに変更もできたら良いかなと思ったんでやっぱりテキストエディターかと。

そんなワケで新たにテキストエディターをゼロからこしらえてみようかと。バカかと。

オープンソースのテキストエディターなんてゴロゴロしてるし、エディットコントロールだってゴロゴロしてるし、なんで今更ゼロから作ろうとしてるんだ、俺はと。

そんな現実を全てスルーして、できるのであれば自分で作るとゆー自分の本能に従う迄です。その勢いだけでゼロからリモートデスクトップアプリとか作ってますし。SkyPhoneもその部類ですし。

て事でかなりの開発工数が推測され、完成時期がいつになるかはすこぶる不明でする。壮大な計画すぎます。



完成図的には上のイメージですかね。いや背景色とか文字色とか今風にしてみましたけどあくまでもイメージ図なんで。文字の周りがうっすらぼんやりしてる感じがかっこええのかと思ったところがポイントです。

さて。

自作テキストエディターを作ったのが10年以上前なんで、その頃はMFCをバリバリ使ってたんですが、最近ではMFCは全く使わない方向です。で、VisualStduioのExpressEditionがメインなんで、以前のソースコードを修正してもビルドができないんでそれを何とかしたいなと。あと、スクロールとか更新の際に画面がチラつくのとか、もっと軽くしたいとか、部分選択(ALT押しながら列の真ん中の行の真ん中だけ選択とか)とか、ソースコードの場合は関数とか選択できてそこにジャンプとかできたらいいなぁ。色々あるんですけどチマチマやっていこうかと。

ちなみに、前作の機能でいらないなーと思った機能が、

・可変幅フォントの対応(固定幅固定)
・印刷機能(ペーパーレス推進)
・オプション画面(設定ファイルで対応)

んなとこですかね。ガッサーと省いていきます。

その前作のテキストエディターのソースコードをベースに修正して何とかビルドしよーかとも思ったんです、が。わー、CStringとかstd::stringに置き換えても全然動かーん。そもそも自分の書いたソースコードの書き方がひどい。リモートデスクトップのソースコードの方が綺麗に書いてあるわ、と錯覚するレベルですよこれは。なんちゅー変数名使ってるんや。全然忘れたし。こりゃ作り直した方がはえーわ。てな事にしました。

さて。

何をベースにしようかと思ったんですが、先述した通り今回はフレームワークは一切を利用しません。全て自作です。前作もフォームとか使っているもののほぼほぼ自作でしたしね。話題の「.net」も利用しません。今回はWin32APIがメインです。今回はってか今回も。TextOutで文字をデバイスコンテキストに描画するぜぇ、ってレベルです。もちろんスクロールだって自分で何とかします。ほら、レガシー感が満載ですよね。ところで文字をうっすらぼんやりてどーやんだ?

とりあえずCreateWindowでウインドウを生成します。詳細は省きます。

長くなったんでつづく!




12件のコメント ... ( 管理人承認制 )



UWP対応でモバイルでも軽いテキストエディタがあれば使いたい。
まあ、windowsのモバイル端末持ってないんですけど。


.  2016/10/21


> UWP


Win32APIなんでUWPには対応できないですね・・・。そういった変換ツールも出てきているようですし何とかなるんじゃないかとは思っていますけど。まだ模索段階ですので軽くなるといいなぁレベルです。はい。


IchiGeki  2016/10/22


【要望】
開発されるテキストエディターが[開発者向け]というより フリーソフト catmemonote 風の[ちょこっとメモ DB]になってくれるとうれしいです。
私は SNS投稿前に、ふと湧いた考えや案など、下書きを書き溜めるため catmemonoteを使用しています。しかし開発中断状態のようです。catmemonoteは Windowsが不安定になったり、ネット接続が中断したり、はっきりしない原因で、作成済みのメモ群をアプリ自体が見失って(インデックスが初期化されるみたいで)メインウインドウのメモ一覧が初期化されて、メモが1件も無い「表示」になる不具合が年 3~5回発生します。これを復旧するには、手動で数時間かけて、実際には残っているメモを登録し直します。何人かのユーザが開発者 BBSに報告していますが、数年以上最新版が公開されず対応されません。
また別の似たフリーソフト CubeNoteは公開されたばかりですが、まだとても catmemonoteの代替にはなり得ません。
また、Evernoteは「下書きを大量に保存」する使い方をしようとすると I/Fが使いづらく数週間で断念しました。
そこで今回、薄い要望を投稿させてもらいました。
決して、catmemonoteや CuteNoteのメモ群を取り込む機能など要望しません。独自方式でメモ群を管理して下さって構いません。
catmemonote freesoft-100.com/review/catmemonote.html
CubeNote cube-soft.jp/cubenote/


TokuToku  2016/10/25


> ちょこっとメモ DB


なるほどー。御要望ありがとうございます。メモ本体の機能というよりは拡張機能といった感じですね。メモ本体が完成したらその辺も検討したいと思いますー。


IchiGeki  2016/10/25


> ちょこっとメモ DB


別の用途として「作り溜めてきたサブルーチン群 DB」にも。


また、catmemonoteは Windows版しか無く、Android版、Linux版、MacOS版は無く「Dropboxにメモ群フォルダを置いて複数 OSで共用」「Winで作ったメモ群を Androidで閲覧」できません。Evernoteはその点で OS非依存ですので、使いづらくても数週間試した訳です。
私は Win+PuppyLinux(軽量 Linux)+Android 利用者です。遠い将来(3~5年後)複数 OS対応してもらえるともっと嬉しいです。軽量 OSでは ReadOnly利用形態でも構いません。


TokuToku  2016/10/26


> 作り溜めてきたサブルーチン群 DB


なるほどー。データをクラウド上において様々なプラットフォームからアクセスできるような感じですね。アプリとゆーよりはサービスになる感じですね。ちょっと大変そうですけど将来的にそんな感じでできるように頑張ります。まずはWindows版といったところですかね。


IchiGeki  2016/10/26


【要望】新しいアプリ
テキストエディタについて、幾つか要望を投稿してきた者です。
今回はテキストエディタではありません。
Windowsログイン画面にキーボードを表示させる使用形態に関連して、次のアプリを要望します。
【機能】safe modeのログイン画面で(Microsoftアカウントのパスワードを)コピペできる機能
ローカルアカウントから Microsoftアカウントに切り替えて、PINを登録している、複数台の Win10を保守しなければなりません。保守するには避けて通れないのが safe modeですが、safe modeは PINではログインできず、Microsoftアカウントのパスワードを入力する必要があります。しかし、そのパスワードって、***@outlook.jp のパスワードでも有って、セキュアな必要がありますから、ランダムな 12~16桁が登録されています。これを平易な4桁にしてしまうと本末転倒です。で、safe modeのログイン画面で、12~16桁のランダムなパスワードを入力するのは困難です。印刷されたメモか、スマホのメモ帳を開こうにも、そもそも、顧客は(PINではない)Microsoftアカウントのパスワードなんて厳密に管理されて、外部の私なんぞが持ち帰れる媒体で提供してくれません。
そこで、safe modeのログイン画面に「どんな手段でも良い」ので「容易に Microsoftアカウントのパスワード」をコピペできる手段(=アプリ)を作ってもらえませんか?
その「Microsoftアカウントのパスワード」は、顧客にお願いして、Windows10に通常 modeでログインして、どこかに(メモかアプリで)記憶しておいてくれて、保守担当の(外部)スタッフに教えなくても済む、と(外部)スタッフとしては楽です。
そんなアプリを、Win10になってから、時々探してはみるのですが、見つかりません。。。。


TokuToku  2017/04/25


> パスワードをコピペ


テキストディタの方ですが、文字の選択のトコまではできてるんですが、メニューとかで選択した文字をクリップボードへコピーを、ってトコで止まっております。以降、作業の時間が全然取れておりません。すみません…


さて、safe modeのログイン画面で動作するアプリって事ですね。safe modeを近頃触っておりませんが、Windowsサービスが動作するのではあれば可能そうではありますね。前にKeroKeyboardもログイン画面で動作するようにしましたし、そもそもBrynhildrもログイン画面で動作するのでそんなイメージかと思います。


試しにBrynhildrのWindowsサービスがsafe modeのログイン画面で動作するか、御確認頂いても構いませんでしょうか?もしそれで動作するのであればハードルはグッと下がると思います。


御手数ではございますが御確認のほど宜しく御願い致します。


IchiGeki  2017/04/25


IchiGeki さん


> 試しにBrynhildrのWindowsサービスがsafe modeのログイン画面で動作するか、


恥ずかしいですが「ここの URL記事を参考に、◯◯◯して確認できるよね」って、手順を少し分かり易く教えてもらえると嬉しいです。


TokuToku  2017/04/25


> 参考


BrynhildrのWindowsサービス動作の設定方法は以下の通りになります。


A端末
1.Brynhildrをダウンロード
2.「c:\brynhildr\brynhildr.exe」という風に配置(場所はルートが好ましいです)
3.「brynhildr.exe」を管理者権限で起動(EXEを右クリックなどで)
4.「Mode」を「Server」、「Service」を「Create」、でOKボタン(初回Firewallの設定でます)
5.起動したらタスクトレイにBrynhildrのアイコン出現(マウスを上に乗せるとIPでます)


B端末
1.Brynhildrをダウンロード
2.「c:\brynhildr\brynhildr.exe」という風に配置(場所はどこでも構いません)
3.「brynhildr.exe」を起動
4.「Mode」を「Client」、「IP」をA端末のIPアドレス、でOKボタン
5.A端末の画面が出ます


これでB端末からA端末をリモート操作できる状態になります。
もし、A端末のsafe modeのログイン画面を、B端末でBrynhildrによりリモート操作できるのであれば、本件のアプリは開発可能となります。(A端末のsafe modeのログイン画面をWindowsサービスで制御できるという事です)
以下のページも御参考にして頂ければ幸いです。


http://blog.x-row.net/?p=2455
http://tororomemo.blogspot.jp/2015/10/brynhildr.html
https://blogs.yahoo.co.jp/ccom_tomo/14844359.html


IchiGeki  2017/04/25


御丁寧に記載して下さったのに、ごめんなさい。
自宅Windowsは1台で、顧客には複数台ありましても、テストに使う訳にはいかず、テストできそうにありません。テスト環境を探してみます。相談しておいて、すいません。


TokuToku  2017/04/26


>テストできそうにありません


いえいえー。どこか別の端末で御試し頂ければと思いますー。宜しく御願い致します。


IchiGeki  2017/04/26




... 不具合報告の際は、アプリのバージョンやOS等の動作環境の記載を御願い致します。

表記されている会社名・製品名・システム名などは、各社の商標、または登録商標です。
当サイトはAmazon.co.jpアソシエイトプログラムに参加しています。
© 2010 IchiGeki