クリップボード履歴のスクリプトを作っているよという話(中身はまだ載せない)

AutoHotKeyの話題って興味ないのかもしれないけど、私はつらねる!

今考えているのは、クリップボード履歴のこと。
まぁ、いうて最近のWindowsにはクリップボード履歴が標準で搭載されているので、別にいらないかもしれないけど作りたい欲があるだけなんだ。

今回の動作は、

1、クリップボードが更新されるとテキストデータでフォルダに保存される。
2、そのフォルダの中身をリスト化して選択できるようなフォームをだす。
3、リストを選択するとそのままペーストが出来る。

というもの。

ただし、まいどまいど保存されるのはセキュリティ的にもよろしくないので、不要なときは履歴は残さない。(別のホットキーで発動する)

というもの。


一応効率が悪いながら1-3まではできました。

コピーすると、現在のクリップボードの内容をTextデータで保存します。
クリップボードもう一度フォルダ.png

その時、過去のデータがあったら、2番め(直前)、3番め(2つ前)へと退避させます。
2,3番めのクリップボードに関しては、すぐに拾えるように、またホットキーですぐに呼び出せるように設定した。

それ以外の履歴はどんどんたまるように設定。
あ、ちなみに文字列の最後の(数字)は過去識別としてつけてる。これが20超えたところから古いもの削除開始。


なんですね。
フォームはこんな感じ
クリップボードもう一度.png

基本処理は問題なく出来るようになったんですけど……。
ただ、ファイル一覧をリストアップする作業というのが、かなり処理時間を取ってしまって、30も40も履歴が残るとフォーム表示まで数秒かかってしまうんです。(現在は入力検索フォームを出すときにリストアップ処理を入れるようにしてる)
…いや、これは他の処理の時にリストアップさせるようにすればいいのかな。

ということで、履歴を20までにして、それ以上のときは古いデータから書き換えられていくという感じにしました。


Idle Handsでは、F13 & rがコピー兼履歴残しコピーです。
F13 & pが単押で普通のペースト、2度押しで直前ペースト、長押しでその前ペーストを行えるようになっています。


フォーム出さずにするのは便利かなと思ったけど、履歴ペーストしていくと直前・その前データが書き換わっていくので、意外と脳内処理は難しかったですね。

というわけで、もっと効率いいの考えないと。

この記事へのコメント

見ていただけだらぜひとも
をお願いします♪