2007年03月18日

クリップボード拡張ソフト「ClipStar」

[一行紹介]
たぶん全形式対応! クリップボードのデータの一時保存・呼出が瞬時にキーボードだけで行えるゥ! 新しい操作感覚ッッ!

[説明]
クリップボードのデータを、一時的に仮想クリップボードに入れることにより、 クリップボードの容量を増やして、より扱いやすくするためのものです。

対応しているデータはテキストだけでなく、画像やファイル・HTML・CADデータなど、

様々なもの、たぶん全ての形式に対応しております。


テキストのみ、プレビュー機能があります


マウスを使い、
Save で番号の仮想クリップボードに保存。
Load で番号の仮想クリップボードを読込。
あと、ワンクリックでクリップボードの管理ができるだけじゃなく、

キーボード操作が好きな人用に起動している間なら、非アクティブでも、

Ctrl+Shift+数字キー(1~9) で番号に即Save
Ctrl+Alt+数字キー(1~9)   で番号に即Load

ができます。

これは、フルスクリーン中のゲームなど、通常のソフトが操作できない場合でも有効ですので、非常に便利な技です。

もちろんタスクトレイに入れて常駐もできます。

Ver1.4から 履歴機能がつくようになりました

ワンクリックで保存されたクリップボードの履歴を呼び出すことができます。


[ソフトウェアのダウンロード記事]
http://haijindiary.seesaa.net/article/16775252.html


//*****ソフトウェア開発日誌

開発スレがなかったので、作ってみる


↓ここからグダグダ思ったことを書いてみるモード


まぁあれだね   作り始めたのいつ?

もう理由も何も忘れちまったよ


ソフトウェア製作で金稼ごう!って思ったけど、

やっぱり難しく、色々やるが技術不足という壁


それでも、良い物を作ろうと


一生懸命やってできたのが、ClipStar

テキストや画像データのみ対応のクリップボード拡張ソフトが溢れる中、

全形式対応 っていうこの努力の結晶


これを有料にして、稼ぐぞ! って思ったが、



ま っ た く 人 気 で な い の な

まぁあるあるだ


俺の知名度がまだ低いだけで、広まればきっと・・・

・・・キツス('A`)



様子見って事で無料で配布し、1ヶ月おきに更新が必要って状態にしたんだが、

それでイマイチってわかったし、なにより更新作業がめんどくさいので、


ついに無料後悔('A`)



そして、ベクターのコメント評価では「2」をもらった

ああ、がっかりさ!


でも、他のソフトには激甘コメントばっかついていたので、

この評価2と的確なコメントは、非常に参考になるコメントだったと思いますので、
この場にて、感謝を言っておきます


で、クリップボードの履歴機能とかつけたりしました。

これだけで前よりかなり使いやすくなりましたなぁ

今回、更新されたVerは3月18日に作りました

ベクターのほうでの公開はもうちょっと時間がかかると思います。



次、機能を増やすとするなら、

右クリックメニューに


仮想クリップボード1にコピー
仮想クリップボード2にコピー
仮想クリップボード3にコピー
仮想クリップボード4にコピー
仮想クリップボード5にコピー

仮想クリップボード1から貼り付け
仮想クリップボード2から貼り付け
仮想クリップボード3から貼り付け
仮想クリップボード4から貼り付け
仮想クリップボード5から貼り付け



なんて機能をつけたら、更に便利になりそうですが、

そんな技術は持っていないし、調べてみたら結構ムズそうだったので、

どうしようかなぁ



//*****追記


クリップボードの履歴を管理する場合、

クリップボードに変化があった時のイベントを取得しなければならない


Clipboard Event Delphi で検索するとこんなサイトが

Listening to the Clipboard: Clipboard Delphi Spy with Custom Clipboard Formats - 2/3  --About CodeGear (Borland) Delphi Programming

この方法でクリップボードの変化時のイベントを取得する事ができた。




これをClipstarに取り入れ、履歴機能が追加された。

クリップボードの機能がどんどん拡張されていくClipstar



MOEと違って製作しやすいんで、やってて楽しいわw



でも・・・久しぶりにClipstarのソース見てみたら、

結構汚いのよね('A`)


汚いと感じるようになった ってのは成長なのかね ふぅ('A`)



あと、クリップボード拡張関係以外で、基礎的な部分、

多重起動防止機能とかもつけるべきか・・・

これは簡単そう


やっぱり問題は、右クリックメニューに


クリップボードへコピー
クリップボードから貼り付け



などの拡張   この拡張がどうしてもしたいw



//*****追記


そうそう、大事な事書き忘れてた

クリップボードの仕組み  プログラミングの参考になりそうな技術の説明




クリップボードのプログラミング



APIを使ってやる人が多いと思うが、テキストや画像といった決まったフォーマットのものしかクリップボードから取れない と思う。


一部のフォーマットだけではなく、クリップボード丸ごと取得する方法はないのだろうか?

っていう所が問題になってくる  たぶん


Delphiでunit Clipbrdを使い、Clipboardのデータを無理やりObjectに代入して、

後からObjectのデータをClipboardに代入って方法を試しても、俺には無理だった('A`)


VBなどで、.Net Frameworkを使った場合、

ClipboardのObjectを取得 っていう関数があった

まさしく、俺が求めていた関数だ


これを使ってテキストや画像以外の全形式対応のクリップボード ClipStarみたいなモノを作る事が、

非常に簡単にできるのだが、バグがあるのか

連続使用をすると動かなくなる

バグが直そうにも、これ以上ないってくらいシンプルな設計

バグがあるままじゃ使い物にならないだろう・・・


そもそもクリップボードとは?



どんなデータでも入るって事で、Objectなどで一括取得したいが、ソレができないので、

色々な実験をしてみた


ペイント(mspaint)で、画像データをコピーした場合、

それをメモ帳(notepad)に貼り付けできるか


通常では、明らかに無理だろう

結果は、メモ帳に貼り付けできず、何も変わらない。



では次に、簡単なプログラムを組んで、

クリップボードにテキストデータをコピーするプログラムを作り、


1.ペイント(mspaint)で、画像データをコピー

2.クリップボードにテキストデータを送る

3.ペイント(mspaint)で貼り付けできるか?

4.メモ帳(notepad)で貼り付けできるか?



という実験をしてみる



結果は、

ペイント(mspaint)に「1」でやったデータが貼り付けできた

メモ帳(notepad)に 「2」でやったデータを貼り付けできた


テキストデータと画像データの両方が入った特殊なクリップボードができた


普通はこんな事ないだろうが、この結果から・・・


クリップボードは 何でも入る というより、

テキストデータ・画像データ・その他のデータ

という風に、様々な引き出しがあると考えたほうがいいのかもしれない。


ペイント(mspaint)では、クリップボードの画像データに画像が入るが、テキストデータは空

ソフトで画像データをいじらず、テキストデータにテキストだけを入れる事により、

テキストデータと画像データの引き出しが埋まる。



引き出しは非常に多い  テキストデータと一言にいっても、書式付 HTML リッチテキストなど様々なフォーマットがある。

画像データも同様に様々なフォーマットがある。



つまり、全ての形式に対応したクリップボード拡張ソフト
を作るには、

クリップボードの全てのフォーマットの個数を確認し、

全てのフォーマットに対し、メモリストリームなどで取得していき、

クリップボードの1つ1つをメモリーストリームに1つ1つ入れる。

こうする事で、全形式対応のクリップボード拡張ソフト「ClipStar」が完成。


//**********追記


現在公開中の1.4ですが、どうみても、

デザインがおかしいですね('A`)ヤレヤレだぜ


履歴機能はつけたけど、とりあえず付けたってだけですので、

本格的な機能追加とかしようと思うので、それまではこのままでw


//**********追記 4月3日


現状わかっている問題

大きなデータを読み込むとフリーズしてしまう。


そもそもクリップボードとは 元から大量のメモリを食うシステムであり、

そのクリップボードのテキストだけじゃなく、画像やオブジェクトを含む全ての形式に対応させたClipstarは、

膨大なメモリを消費するソフト と言える(詳しく調べていないが、仕組みが・・・)


メモリを食いすぎたら当然困るだろう


そこで、クリップボードの内容を、ファイルに保存できるようにしたらどうなのだろうか?


クリップボードのデータをメモリに保存せず、

全てファイルとして保存され、使用時にはファイルからの読み込みとなる



このやり方の

メリット:
メモリをあまり消費しない
数日分の記録も簡単である


デメリット:
ハードディスクを使うため、若干遅いかも?



某ソフトのせいで、

少量のデータの読み書き=ハードディスクに負担 寿命を縮める

的なイメージがあるけど・・・ あまり縮めないよね・・・?('A`)


//**********追記4月4日


複数のストリームを一つに纏めて巨大なストリームにし、

ファイルへ保存


その場合、ディスクへの処理がかなり軽減される  気がする

と思いかなり頑張った訳ですよ

最初はできてたっぽいんだけど、なんか 他のフォーマット形式に

微妙なズレが出始めて、 あぼーん


まぁ、ズレを確かめていけば直ったかもしれないが、 あの時はなんか不調でそこまでやる気力がなかったw


おまけに、ワードやエクセルのコピーが特殊な事が判明した


クリップボード(Clipboard)のプログラミング



イベント(Event)を取得する記述は、

WatchClipboard  --Leafel's note

このサイトを参考にすると良い(俺のと少し書き方違ったけど、意味は一緒)

この記述でクリップボードの変更のイベントが取得できるのだが、

これで、エクセルのコピーをイベントを取得すると、

1回じゃなく、何回もでる('A`)


エクセルは思ったよりかなり形式が多く、

最初はテキスト 次は画像 次はエクセル用 次は(ry

って感じで、データを分けて入れてるのだろうか・・・?

調べようと思えば調べられるが、意味がないので放置


この仕組みの最大の論点は、


クリップボードの更新の終わり を取得できないと、

仮想クリップボードにうまくデータが入らないということ('A`)



今までのClipStarは履歴機能がないため、

更新中のクリップボードなんて相手する必要はなく、

完全な状態のみを相手にしていたからなぁ・・・


問題解決が面倒だわ・・・


//**********追記4月5日

Blogの名前を変更したからか、 結構調子がイイ


もうソース汚くなってもいいので、

製作重視の我流プログラミングしまくったw


で、結果、

履歴機能がディスクに保存されるようにできた。

ワードやエクセルには・・・ 動くんだけど、ちょっとまだバグがあるみたい('A`)


あと、おまけに右クリメニューにプレーンテキストでコピーを追加


Ver1.5完成
この記事へのコメント
VectorさんでClipStarをDLさせていただきました。
そこでお願いなのですが、無料のソフトをダウンロードの項の2006年04月19日のClipStarに更新履歴が書いてありますが、Verうpした日付が入ってないので、書いていただけませんか。
よろしくお願いします。
Posted by こーたろう at 2007年03月21日 04:34
ダウンロードありがとうございます。

了解しました。 Verうpした日付の記入ですね。
今後、他のソフトの更新時も気をつけるようにします。
Posted by Loki at 2007年03月23日 05:21
迅速に対応していただき、ありがとうございます。
実は、3月21日の早朝にVectorさんからDLさせていただいたClipStarですが、
サイト上の更新日が2007年1月9日と表記されていたのですが、どうもVer1.3ではなくVer1.2が配布されてたっぽいんです…
Readmeの表記がVer1.2だし、操作時のバルーンは出ないし、clipstar.exeのプロパティで更新日が2006年8月25日 12:04:28になってるし…
でも、こちらのサイトの更新履歴では最新版はVer1.3になってたたので、変だと思い、Verうpの日付を確認したかったんでつ。
Posted by こーたろう at 2007年03月24日 17:22
ああ、そうでしたか

最新版作った後、ベクターへの公開手続きをし、一週間ほどでベクターで公開されるのですが、
待ちきれずに記事を書いたりしていた事もあり(日付もそこら辺の誤差が)

今後はベクター公開確認後、記事を書くようにします すみませんでした


っていうか最新版の1.4落としてみたら、
サイズが狂てる・・・orz

眠たい時にやって、最後に手がシュパーといったのかなぁ

まぁそんな感じのなんちゃってプログラマーやっていますが、
今後もよろしくお願いします。m(_ _)m
Posted by Loki at 2007年03月24日 19:28
>今後はベクター公開確認後、記事を書くようにします すみませんでした
とんでもありません。こちらこそ色々とお手数をお掛けしまして申し訳ございません m(_ _)m
更新の記事ですが、公開前に書いていただいた方が嬉しいですよ。
公開手続きから実際の公開までのTimeLagは承知していますし、その間ワクワクしながら公開を待っているのも楽しみです。
記事の段階では「近々更新予定」って書いて、実際Vectorで公開になった段階で「○月×日更新しました」って書けば良いのではないでしょうか。

>最新版の1.4落としてみたらサイズが狂てる
1.4使ってみましたが、自分の環境(WinXP_sp1)では特に問題ない様子ですよ。
21日にダウソした1.2に比べると使い易くなっているように感じます。
しかし、ClipStar 1.3は何処に逝ってしまったのでしょう?
これだけinterfaceが改良されてると1.3を使ってみる事ができなかったのが悔しいでつ(笑)
Posted by こーたろう at 2007年03月25日 01:14
>記事の段階では「近々更新予定」って書いて、実際Vectorで公開になった段階で「○月×日更新しました」って書けば良いのではないでしょうか。
そうですねぇ そうします


1.4使ってみたところ、エクセルの全セルコピーなど、
非常に重い処理をするとフリーズするバグが発覚

履歴機能のおかげで自動登録されるんで、フリーズが('A`)
今後の問題点多そうだなぁ
Posted by Loki at 2007年03月30日 04:31
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。