(3410)
3410:
クリップボードの使用法?
投稿者:
文太
2008/11/09(日) 00:18
コメント数 2
もちろん、clppest.exe+clppest.def が定番なのですが、もう少し工夫されて
使用されている方はいませんでしょうか。 僕は、 いちおう qtclip by Kenji
Arai の履歴機能を使うこともないことはないのですが、いまいち。 それ以外に
コマンドラインから使えるものとして、CLIPB.EXE (クリップボード内文字列の
コマンド実行)と CLIPIO.EXE (リダイレクトしてクリップボード内文字列(複
数含む)のテキスト処理)というのをリサーチだけしたのですが、クリップボー
ドのスタック化ってできないのかなぁ、思っているところです。もし上記より他
の使い方をしている方がありましたら、教えていただけないでしょうか。大昔に
「ああダメなんだ」と思ったのは、クリップボードを空にしても、(たとえば)
qtclip は次の文字列をクリップボードに送ってくれるわけではないので履歴ス
タックはできないんだ、ということでした。当たり前なのでしょうが。
「クリップボードのスタック化? あるよ」
とか『ヒーロー』の親父(あの人なんていう俳優さんでしたっけ?)的に教え
てもらえると幸せなのですが。
とらじさんのqtclip通信exeは(実行ファイル名なんだっけ)ダメですね。古い
古い確認ですが。
- No.3410 -
このTreeへ
[リストへもどる]
pre
(3410)
3411:
Re: クリップボードの使用法?
投稿者:
めざら
2008/11/09(日) 11:34
参照先:http://mezala.la.coocan.jp/
3410 番 文太 さんへのコメント コメント数 1
VZからクリップボードの履歴を扱うという意味ですよね。そうすると,次の条件を満たすソフトが必要だと思います。別個でよいわけですが,別ソフトの管理するメモリ領域へのアクセスに対応できるかは疑問です。
・クリップボードの履歴をとる常駐ソフト
・上記のソフトが蓄えたメモリ上の履歴をファイル化するコマンドラインツール
例えば,qtclipが履歴をとるたびにファイルに書き出しているような仕様であれば実現可能性は高かったわけですが,ディスクアクセスがパフォーマンスを低下させることになるので,履歴はメモリ上にあるのが普通だと思います。
寅次さんはかつてqtclipのapiか何かを利用して履歴をファイル化することを試みていたようですが,コマンドラインからうまく使えなかったのではなかったでしょうか。
また仮にテキストファイルへの書き出しができたとして,例えばqtclipの全履歴ファイル保存機能をコマンドラインから実現できたとして,次に問題になるのはひとつひとつの履歴アイテムの区切りをどう判断するかです。qtclipの現時点の仕様では,改行をひとつ入れるようになっていますが,個々のアイテム中に連続する改行が含まれている場合に,それが区切りなのかアイテムに含まれるものなのか判断することは困難でしょう。
qtclipのapiか何かを利用してファイルに書き出す時に,例えば区切り文字に行頭@行を挿入できれば,あとはどうにでもなりそうですけどね。速度を無視すれば拙作umenusでも可能といえば可能なのですが,機械語化が望ましいと思います。
1行ずつでかまわなければ,現在のumenuでも表示・貼付できなくもないかな。(笑)
- No.3411 -
このTreeへ
コメント元:3410 へ
[リストへもどる]
soft
(3410)
3413:
Re^2: クリップボードの使用法?
投稿者:
あきろ
2008/11/09(日) 18:50
3411 番 めざら さんへのコメント コメント数 1
文太さん、めざらさん、こんばんは。
「クリップボードのスタック化」ですが、私は clcl.exe というツールを利
用しています。これは windows のクリップボードをスタック化? してくれ
る windwos ツールです。
「clppest.exe + clppest.def」で、Vzにペーストとすると、それらについ
ては、jenga.def により(Vz内でも)自動的にスタック化されます。
つまり、クリップボードの履歴は、clcl という windows ツールで行い、
clcl で履歴を呼び出し、「clppest.exe + clppest.def」でVzにペースト
する。ペーストしたときに jenga.def がVz内でもスタック化してくれると
いう風になっています。
とはいえ、jenga.def のスタック化はあくまでもおまけで、クリップボード
の履歴は、clcl にお任せという感じです。
と、書いてきましたが、文太さんのお望みの形ではないような気がしてきま
した。(しかも説明が分かりにくい・・・)
では、また。(^^)/
- No.3413 -
このTreeへ
コメント元:3411 へ
[リストへもどる]
soft
(3410)
3414:
Re^3: クリップボードの使用法?
投稿者:
文太
2008/11/10(月) 00:23
3413 番 あきろ さんへのコメント コメント数 1
めざらさん、
原理的で開発的な要約、ありがとうございました。まだ欲しい機能と入手すべ
き情報・スキルの整理がついていない状態ですが、そうか、結局、履歴機能か、
と少し頭の中の整理がつき始めています。
qtclipのばあいの、改行代わりの@技は、おお、と思っています。受け取る側
(Vzの相手)であれこれしなければなりませんけどね。逆も真なりか。
あきろさん、
ありがとうございました。clcl は有名ですよね。jenga.def は恥ずかしなが
ら試したことがなかったので、導入してみます。たぶん、あきろさんのやり方が
Vzer にとっての現実解(現在におけるソリューション)かな、と思っています。
ただ jenga.def から、色々と目移りだけしそうなコンソール・クリップボー
ド・アプリを知るにいたりまして、まだ、clcl さえ試せていません。
(CBアプリは、ほんとたくさんあるみたい。半魚さん(see めざらリンク)
は100個ぐらい試したと書いていたと思う) 自分が何を欲しがっているのかも
よく分かってない状態…。(>_<) それでも汎用解としても難しいんだ、と知りま
した。多謝。
開発系(僕の手におえる問題ではないし、欲しいという強烈な欲望も発動しま
せん−−現実的なだけですが)を除けば、たぶん正解です。そして、そういうレス
がくることを願ってました。qtclip さえ使いこなせてないので。だってショート
カットキーがないし色々と閉じてるみたいなので…。
- No.3414 -
このTreeへ
コメント元:3413 へ
[リストへもどる]
pre
(3410)
3417:
Re^4: クリップボードの使用法?
投稿者:
文太
2008/11/10(月) 22:46
3414 番 文太 さんへのコメント
めざらさん、あきろさん
ちょっとだけ前進。 スタック化までは行っていませんが(+jenga.def でも希
望と違った、と思う。Windows アプリが履歴文字列(複数)のスタック管理をし
てくれるのが希望だったので。 )それでも、qtclip より clcl のほうが僕の希
望に近いみたい。ホットキーでメニューが出て、ショートカットキーが出るから。
それ以外は僕の不勉強で、qtclip のヘルプに知らないことがあったりしました。
履歴の全書き出しは qtclip の右クリックにありますね。 これ、clcl にはない
のかしら。両方常駐させるのは、いくらなんでも無駄だよなぁ (~_~;
(たぶん両方、少なくとも clcl は)アイテム選択をすると同時に ^V キー信
号をアクティブ・ウィンドウに送ってくれるそうで、Windows アプリならそのま
ま貼り付け可能です。
で、僕はWzのキーカスタマイズに2時間費やした。メモ帳とワードは素直に
受け取ってくれるのにWzが受け取らないから。このキーカスタマイズのやり方
は、分かりにくいだろうぉ〜。(標準では出荷時Vzと同じく、^V は「挿入・
上書きの変更」)。やれやれ。
といいつつ、Wzが受け取れる意味はないのだけど。僕の相手はワードでした。
罫線とか色々あって…。
さて、連続クリップボード送りマクロを作るのかぁ。何か気力がないなぁ。ク
リップボード送り実行ファイルのスピードテストをしたいような気はするのだけ
ど。 これは、バッチファイルですね。32ビットアプリに16ビットな awk は
使えない…。 バッチも偉いじゃん、こうなると。あ、32ビットな awk ならや
ってくれるのか? −−そこまでやるか分かりません、あらかじめ。
どうでもいいことも書いておくと、clclはコマンドラインから命令を受け取れ
て、clcl /Vでヴィーアが出ます。ポップアップのほうが出たいけど、でも、これ
ダメですね。Vzには貼り付けられないし、貼り付けられても意味ない。だって、
Vzから文字列送ってるのだもの。あはは。「アクティブ・ウィンドウにペースト」
ですよ>文太君。
とりあえず、Vzからクリップボードに連続で文字列を送るのはよい。Vzが
受け取る場合は、qtclip の全文字列のファイルへの書き出しを利用。中途半端な
感じは残るけど、現状はこんなところです。ま、満足、かな。
改行を含む文字列を諦めてしまえば、ほんとumenu.defで一発ですね。
うん、clclさん、あなたにテキスト文字の履歴全書き出し機能はないの? だな。
プラグインとかであるのかな??? ビットマップなど、みんな切りました。(^^)v?
- No.3417 -
このTreeへ
コメント元:3414 へ
[リストへもどる]
pre
(3410)
3418:
Re: クリップボードの使用法?
投稿者:
としき
2008/11/11(火) 18:16
参照先:http://toshiki.la.coocan.jp/
3410 番 文太 さんへのコメント コメント数 1
私は、最近は、クリップボードの履歴ソフトも使わなくなりました。
何というか、イマイチ信用がおけないという感じで。
本当に純粋に、一時的なコピーとペーストに使うか、あるいは別アプリとのやり
取りに使うか、だけですね。
とりあえず、googleで「クリップボード」と「スタック」と「コマンドライン」
で検索してみるとか、ベクターのサイトにあるクリップボードユーティリティを
片っ端から試してみる、なんていうのがいいのかもしれません。一つ一つ試すの
は効率が悪いような気もするかもしれませんが、結局はそれが王道というか最短
経路のような気がします。
あとは、こっちソフトのこの機能とあっちのソフトのあの機能があればいい、と
いう事がわかれば、さらに別のソフトを探す時の手がかりになるかもしれません。
とにかく、現状に不満があるという事は改善に向けての最初の1歩ですが、それ
がどういう不満なのか、ということがきちんと分析できなくては改善のしようも
ありません。分析なんていう固い言葉を使わなくても、いわゆる「見える化」と
いうのでしょうか、とりあえずキチンと日本語で記述する必要はあると思います。
多くのソフトを片っ端から試してみる、というのは、現状の不満の明確化に対す
る一助にはなると思います。
- No.3418 -
このTreeへ
コメント元:3410 へ
[リストへもどる]
pre
(3410)
3419:
Re^2: クリップボードの使用法?
投稿者:
文太
2008/11/11(火) 23:22
3418 番 としき さんへのコメント コメント数 1
としきさん、レスをありがとうございます。はい、自分が何を求めているのか
明確ではありませんでした。なので発題もレスも、問題解決への道が明瞭ではあ
りませんでした。
> 私は、最近は、クリップボードの履歴ソフトも使わなくなりました。
はい、僕も同じ感想を持っています。
> 本当に純粋に、一時的なコピーとペーストに使うか、あるいは別アプリとのやり
> 取りに使うか、だけですね。
ほんとにその通り。
> とりあえず、googleで「クリップボード」と「スタック」と「コマンドライン」
> で検索してみるとか、ベクターのサイトにあるクリップボードユーティリティを
> 片っ端から試してみる、なんていうのがいいのかもしれません。
体力があって好奇心もあって目的が明確でないときには真っ先にするべき事柄
ですね。ただ、今は目的が明確になったので、自分の指で処理すべきか、ツール
を探すかというレベルでは迷いはありません。
といいつつ、探し続けそうだけど。見つかったとき、知らなかったことが知れた
ときの興奮が、やっぱりあるから。
というより、真っ先に思いついて静かにやれよな、という感じ。
> とにかく、現状に不満があるという事は改善に向けての最初の1歩ですが、それ
> がどういう不満なのか、ということがきちんと分析できなくては改善のしようも
> ありません。分析なんていう固い言葉を使わなくても、いわゆる「見える化」と
> いうのでしょうか、とりあえずキチンと日本語で記述する必要はあると思います。
> 多くのソフトを片っ端から試してみる、というのは、現状の不満の明確化に対す
> る一助にはなると思います。
全部引用してしまう。御意、御意。
はい、中途半端でした。何かVzとの双方向という発想が残っていて、焦点が
ボケてしまいましたね。履歴ソフトが常駐していれば、Vzから連続で文字列を
送るのは現状で十分可能。(少なくとも僕の場合)クリップボード履歴をVzに
処理させるというのは必要ではありませんでした。だって基本的にVzが発信元
なので、履歴は手元のテキスト・ファイルに残っている。というわけでコンソー
ルアプリは clppst.exe で十分。残る仕事は Windows アプリにスタック操作を
させること。 完全に Windows アプリの世界の問題。これは clcl のプラグイン
にあったのだけど、まだ、これを手でやれるのか分からない状態。
ご迷惑をお掛けしておりますが、それでも発題させてもらったお陰、レスを頂
けたお陰で、解決される(あるいは残念なことに諦めるべき)問題が明確になり
ました。多謝です、皆さま。
- No.3419 -
このTreeへ
コメント元:3418 へ
[リストへもどる]
pre
(3410)
3426:
半端なまとめ(CB<->Vz)
投稿者:
文太
2008/11/13(木) 21:51
3419 番 文太 さんへのコメント コメント数 1
クリップボード履歴をそのままVzと双方向に親和させる、つまりVzから、
VzのDos窓から操作する(支配・管理する)というのは現状では無理でしょ
う。また、それを可能にするコンソールアプリの存在も出現も、あまり現実的で
ないと思います。あくまで個人的な感想ですが。また、それ、必要かなぁとも感
じている(この辺はその人のニーズによる。クリップボードの世界は、あれだけ
のソフトがあるだけに、広くて深い。コンソールアプリで履歴機能を持つものは
さすがに聞いたことがない)。
具体的に、僕の不満は、ワードの書式付きファイルに、Vzから原稿=複数文
字列を送りたかった。履歴を使わないと行ったり来たりして、またキーボードと
マウスの持ち替えがたまらなかった。ここでのポイントは、Vz→ワード(ある
いは普通の Windows 世界)の一方向だということ。 また、もう一つのポイント
は、履歴を使うとしても、それはクリップボードという一つの窓しかないのだか
ら、順次文字列を消去してくれるスタック動作が欲しいというものでした(^J==#i
的に書き出したら消してくれる=正確にはスタック・ポインタをずらす、かな)。
で、解決策は、clcl+clppst というところでした。clcl はすごいです。履歴
文字列を編集できますので、プラグインを使うと小さなエディタの世界みたいに
もなれる(あんまり追いかけるつもりはありませんけど)。そして、(定石です
が)メニューが出ます。ショートカットキーもあります(履歴→クリップボード
が自動化されてる。実は学習機能というかヒストリー機能も含まれている)。つ
まり、スタック動作しなくても目的はだいたい達せるわけです。更に、プラグイ
ンでクリップボード・クリア、全履歴クリアも可能ですので、ま、僕としては満
足かな、というところに到着したのでした。
あまり汎用性もないし、「また同じようなの作ってる。コード、リサイクルし
てるだろう」 ものですが、 別発言でマクロを上げておきます。multi-line to
clipboard で、mln2clp.def です。
10行あると10回 clppst を起動します。驚いたことに、それほど遅くない
です(とりわけ2回目以降<=XPの準備かな? )。 マクロの動作はマシン語
(Dosファンクションコール)とテキストバッファからの転送なのでまあまあ
でしょう−−がちゃがちゃカーソル動かしてはいますが。(脱線ですけれど、と
らじさん、dptimer.exe という計時ソフトも書いてました。やりぃ!)
めざらさんが仰っていた「改行含み」には対応していません。行ブロック範囲
の1論理行を1アイテムとして、Vzからクリップボードに送ります。
- No.3426 -
このTreeへ
コメント元:3419 へ
[リストへもどる]
pre
(3410)
3427:
MLN2CLP.def
投稿者:
文太
2008/11/13(木) 21:52
3426 番 文太 さんへのコメント コメント数 1
=== MLN2CLP by Bunta ===; multi-line to clopboard
行ブロックの範囲を論理行単位に分割してそれぞれをクリップボードに送る。
当然、Windows専用。クリップボードが履歴機能を持っていること。
クリップボードには元ファイルの上の行からの順に入った状態になる。
スタック動作は履歴アプリ依存。
クリップボード転送はclppst.exeにお願いしている。
* Macro
50 ^^ "MLN2CLP"
?. ss2,
(mb==1)?? {&m("line block, please.").}
&#M(4) k=ky,
p="c:\tmp\", &00 ;:00 create num_incrementing filename buff
(xc>0)? #B a=ln, #B ;top first, then back to bottom
a=c=ln-a, ;<c> line num -> file num == loop counter
#< #s ;<a> for recycling
:A ;===== create & write files, line by line =====
(c==0)? {c=a, >B}
&02 ;create filename one by one in <t>
;input: t==dx==dst FN offset, for F_CREATE ->bx==handle
; di==src seg (ds), si==src offset (*cl), cx==strlen, for F_WRITE
#] dx=t, cx=cp-cl, di=tz, si=cl,
&01
#< #s
c--,
>A
:B ;===== send each file to clipboard =====
(c==0)? {#[ >Z}
&02 ;create filename one by one in <t>
#E &?("clppst /R %s",t) #m
ax$4100, dx=t, &i($21) ;F_DELETE
c--, >B
:Z ;===== finishing =====
&#U(4) ky=k, mb-, &d &m("finished!") .
;----- LOCAL MACROS -----
00: t=3+$,."$[16]"
01: ; F_CREATE, WRITE, CLOSE
&i("$(51,33,C9,B4,3C,CD,21,8B,D8,59,8E,DF,8B,D6,B4,40)$
$(CD,21,B4,3E,CD,21,C3)")
02: &Sp(t,"%s%04d.txt",p,c)
*
;F_CREATE, WRITE, CLOSE
;input: cx=strlen, dx=dst FN offset (t), di=src seg (tz), si=src offset (cl),
push cx
xor cx,cx ;F_CREATE(ah,ds:dx,cx) -> ax=handle
mov ah,3ch
int 21h
mov bx,ax ;F_WRITE(ah,ds:dx,cx,bx)
pop cx
mov ds,di
mov dx,si
mov ah,40h
int 21h
mov ah,3eh ;F_CLOSE(ah,bx)
int 21h
ret
- No.3427 -
このTreeへ
コメント元:3426 へ
[リストへもどる]
pre
(3410)
3433:
Re: MLN2CLP.def
投稿者:
文太
2008/11/16(日) 20:56
3427 番 文太 さんへのコメント コメント数 1
ちょびっとエラーチェック強化&改行対策。改行含みは送れませんが(clppst.def
を連打のこと)、改行を含んだブロックを指定できます。改行のみの行は飛ばす。
=== MLN2CLP by Bunta ===; multi-line to clopboard
行ブロックの範囲を論理行単位に分割してそれぞれをクリップボードに送る。
当然、Windows専用。クリップボードが履歴機能を持っていること。
クリップボードには元ファイルの上の行からの順に入った状態になる。
スタック動作は履歴アプリ依存。
クリップボード転送はclppst.exeにお願いしている。
* Macro
50 ^^ "MLN2CLP"
?. &10 ss2, ;check win & clppst
(mb==1)?? {&m("line block, please.").}
&#M(4) k=ky,
p="c:\tmp\", &00 ;:00 create num_incrementing filename buff
(xc>0)? #B a=ln, #B ;top first, then back to bottom
a=c=ln-a, ;<c> line num -> file num == loop counter
#< #s ;<a> for recycling
:A ;===== create & write files, line by line =====
(c==0)? {c=a, >B }
&02 ;create filename one by one in <t>
;input: t==dx==dst FN offset, for F_CREATE ->bx==handle
; di==src seg (ds), si==src offset (*cl), cx==strlen, for F_WRITE
#] dx=t, cx=cp-cl, (cx==0)? >a di=tz, si=cl,
&01 ; F_CREATE, WRITE, CLOSE
:a #< #s
c--, >A
:B ;===== send each file to clipboard =====
(c==0)? {#[ >Z }
&02 ;create filename one by one in <t>
#E &?("clppst /R %s",t) #m
ax$4100, dx=t, &i($21) ;F_DELETE
c--, >B
:Z ;===== finishing =====
&#U(4) ky=k, mb-, &d &m("finished!") .
;----- LOCAL MACROS -----
00: t=3+$,."$[16]"
01: ; F_CREATE, WRITE, CLOSE
&i("$(51,33,C9,B4,3C,CD,21,8B,D8,59,8E,DF,8B,D6,B4,40)$
$(CD,21,B4,3E,CD,21,C3)")
02: &Sp(t,"%s%04d.txt",p,c)
; --- below, from clppst.def or fakefep.def; thanx >toraji ---
10: &Sp(pr,"%sclppst.EXE",pi)
&11 (r==0)? { &m("Windows 上で実行してください") &q . }
(r==-1)?{ &m("clppst.EXE が VZDEF ディレクトリにありません") &q . }
11: ; -- win or not (check vol label)
&Sc(pa,pi,3) dx=pa, di=pa+5,
bx-, cx=50, ax=$71A0, &i($21) (ax==$7100 || r)?{ (0) . }
; -- execfile exists or not
ax$4300, dx=pr, &i($21) (r)?{ (-1) . } (1)
*
;F_CREATE, WRITE, CLOSE
;input: cx=strlen, dx=dst FN offset (t), di=src seg (tz), si=src offset (cl),
push cx
xor cx,cx ;F_CREATE(ah,ds:dx,cx) -> ax=handle
mov ah,3ch
int 21h
mov bx,ax ;F_WRITE(ah,ds:dx,cx,bx)
pop cx
mov ds,di
mov dx,si
mov ah,40h
int 21h
mov ah,3eh ;F_CLOSE(ah,bx)
int 21h
ret
*
- No.3433 -
このTreeへ
コメント元:3427 へ
[リストへもどる]
pre
(3410)
3434:
残念XPファンクコール
投稿者:
文太
2008/11/16(日) 20:57
3433 番 文太 さんへのコメント コメント数 1
ま、報告。 ちらっと jenga.def を覗いたわけです。クリップボード転送には
何を使っているのかな、と。そうしたら、なんと外部アプリでなくファンクショ
ンコールでした。え、そんなのあるの? INT 2Fh, 170xです。
でも駄目でした。ご存じの通り。
XP以外で、あるいはあなたのXPで使えるかどうかは、以下で調べられます。
「1700」以外が表示されたら、きっと使えます。いいなぁ。
こういうところを切るかよなぁ〜>MS どっかで、WinAPIの仕様もざくっと
変更したとか?
> INT 2F - MS Windows "WINOLDAP" - IDENTIFY WinOldAp VERSION
> AX = 1700h
=== Macro Tmp by Bunta ===;
* Macro
50 ^^ "mactest"
ax=$1700,&i($2F) &m("%x",ax)
*
うん、グレップしたら、2年前くらいに話題になっていた@金野掲示板。XP
では駄目、という結論ではなかったようですが。とにかく、ダメ〜。
あきろさんのWindowsでは、jengaでのクリップボード送りができてるわけですか?
- No.3434 -
このTreeへ
コメント元:3433 へ
[リストへもどる]
pre
(3410)
3437:
Re: 残念XPファンクコール
投稿者:
あきろ
2008/11/17(月) 00:39
3434 番 文太 さんへのコメント コメント数 1
> あきろさんのWindowsでは、jengaでのクリップボード送りができてるわけですか?
clppst.def にお願いしています。jenga でのクリップボード送りは、できて
いません。 → マニュアルに windows95/98/Me のみと書かれていますよん。
- No.3437 -
このTreeへ
コメント元:3434 へ
[リストへもどる]
pre
(3410)
3438:
Re^2: 残念XPファンクコール
投稿者:
文太
2008/11/17(月) 01:27
3437 番 あきろ さんへのコメント
あきろさん、こんばんは。やば、こんな時間…(>_<)
> > あきろさんのWindowsでは、jengaでのクリップボード送りができてるわけですか?
> clppst.def にお願いしています。jenga でのクリップボード送りは、できて
> いません。 → マニュアルに windows95/98/Me のみと書かれていますよん。
まったくそのとおりですね。テキストスタックは、どうも上手く使えてないと
ころだったので、jenga.(def|txt) とともに研究してみますね。clcl 紹介もあ
りがとうございました。カスタマイズがうまくいかずけっこう泣かされましたが、
これ、いい。すごい。jengaにも同じく(きっとrecipe.defも)感謝しそうな嬉し
い、よ・か・ん。うふ。
- No.3438 -
このTreeへ
コメント元:3437 へ
[リストへもどる]
pre