マクロ使用時のクリップボード取得に関しNo.24853
EXZS さん 08/05/02 23:38
 
マクロ使用時のクリップボード取得時におかしなデータを
読み出すことがあります。

次のようなマクロを実施時に

deleteline;
beginclipboardread;
$linedata = getclipboard;
message "line = " + $linedata;


この際に表示されるメッセージダイアログの表示が
"line = $linedata;"
というように読み出した値らしきものではなく、マクロの続き
の内容が取り込まれている内容になります。
message文だけではなくinsert文でも発生します。
ある時を境にぴたりと止まることがあり、現象発生の確実な再現性
がありません。ご確認願えますでしょうか?

環境としてはWindowsXP SP2, 秀丸ver7.08及び7.09β2で確認しました。

[ ]
RE:24853 マクロ使用時のクリップボード取No.24874
秀丸担当 さん 08/05/07 09:46
 

>この際に表示されるメッセージダイアログの表示が
>"line = $linedata;"
>というように読み出した値らしきものではなく、マクロの続き
>の内容が取り込まれている内容になります。
>message文だけではなくinsert文でも発生します。
>ある時を境にぴたりと止まることがあり、現象発生の確実な再現性
>がありません。ご確認願えますでしょうか?

試しにやってみましたが、特に問題は見られませんでした。
何らかの理由により、クリップボードに「$linedata;」という内容が入っている
のかもしれません。
自動起動マクロを設定していて、それが何かのタイミングでコピーしているとか、
常駐ソフトが何か問題を起こしているとか、そういったことは無いでしょうか。

自動起動マクロだとしたら、[マクロ]→[マクロ登録]→[自動起動]で指定されて
いるものです。

常駐ソフトだとしたら、例えば、カーソル位置の単語をクリップボード経由でコ
ピーしてWeb検索するというようなソフトがあって、それが勝手にコピーしてし
まっているとかそういうこともあるようです。

あるいは、
message "line =  + $linedata;
というように、「"」の終わりを書き忘れてしまっても実行できてしまいます。
マクロを書き換えているうちに、上書き保存する前にマクロを実行してしまうと、
そういうことも起きるかもしれません。

[ ]
RE:24874 マクロ使用時のクリップボード取No.24876
EXZS さん 08/05/07 10:13
 

>何らかの理由により、クリップボードに「$linedata;」という内容が入っている
>のかもしれません。

直前に変数をコピペしていたので$linedataは入っているかもしれませんが、セミコ
ロンまで入っているかどうかは疑問です。
実際には2つのPCで再現しておりまして、こちらのマクロは再現する最低限の記述
を抜き出したものです。
元の環境で発生したものはもう少し長い文でしたが、そちらも漏れて表示された感じ
でした

>自動起動マクロを設定していて、それが何かのタイミングでコピーしているとか、
>常駐ソフトが何か問題を起こしているとか、そういったことは無いでしょうか。

自動起動マクロは使用しておりません
クリップボード系の常駐ソフトはありません(多分秀丸だけです)
2台のPCに共通そうなのはウイルスバスターとAltIME(クリップボード系の機能は
停止しています)です


>message "line =  + $linedata;
>というように、「"」の終わりを書き忘れてしまっても実行できてしまいます。

上記マクロは再現した際のファイルをコピペしているのでその可能性はないと思いま
す。一応文字列を強調表示していたので文字列の閉じ忘れはないつもりです。

またクリップボード系の受注ソフトが原因としても、マクロとしては直前のdeleteli
ne文で削除しているので多分クリップボードの中身は書き変わっていると推測します
が、割り込まれて書き換えられたりする可能性はあるのでしょうか?

[ ]
RE:24876 マクロ使用時のクリップボード取No.24878
秀丸担当 さん 08/05/07 10:36
 

>またクリップボード系の受注ソフトが原因としても、マクロとしては直前のdeleteli
>ne文で削除しているので多分クリップボードの中身は書き変わっていると推測します
>が、割り込まれて書き換えられたりする可能性はあるのでしょうか?

deleteline文は、行の切り抜き(カット)ではなく行削除なので、クリップボード
の中身は書き換わらないですが、そのあたりは大丈夫でしょうか。

[ ]
RE:24878 マクロ使用時のクリップボード取No.24885
EXZS さん 08/05/07 23:25
 
>
>>またクリップボード系の受注ソフトが原因としても、マクロとしては直前のdeleteli
>>ne文で削除しているので多分クリップボードの中身は書き変わっていると推測します
>>が、割り込まれて書き換えられたりする可能性はあるのでしょうか?
>
>deleteline文は、行の切り抜き(カット)ではなく行削除なので、クリップボード
>の中身は書き換わらないですが、そのあたりは大丈夫でしょうか。

申し訳ありません。
ひょっとしたらダメな時、削除系のコマンドばかりを試していたかもしれません。
一応cutに直した以降のマクロでは発生していないので使用した命令が問題かもしれ
ません。

お騒がせしました。

敢えてリクエストをあげるとすれば、クリップボード系の命令として削除系が弱いの
で増えてくれると嬉しいです

[ ]
RE:24885 マクロ使用時のクリップボード取No.24886
アルビレオ さん 08/05/08 01:11
 
ユーザーのアルビレオです。

>敢えてリクエストをあげるとすれば、クリップボード系の命令として削除系が弱いの
>で増えてくれると嬉しいです

横からチャチャ入れして申し訳ないですが、具体的にどのような機能が欲しいの
かを書かないと、リクエストというには漠然としすぎて秀丸担当さんも答えよう
がないと思うのですが。

[ ]
RE:24886 マクロ使用時のクリップボード取No.24887
秀丸担当 さん 08/05/08 10:19
 

>敢えてリクエストをあげるとすれば、クリップボード系の命令として削除系が弱いの
>で増えてくれると嬉しいです

行の切り抜きというコマンドがあったらいいかもしれません。
将来バージョンで検討したいと思います。

[ ]
RE:24887 マクロ使用時のクリップボード取No.24893
EXZS さん 08/05/09 00:14
 
>
>>敢えてリクエストをあげるとすれば、クリップボード系の命令として削除系が弱いの
>>で増えてくれると嬉しいです
>
>行の切り抜きというコマンドがあったらいいかもしれません。
>将来バージョンで検討したいと思います。

よろしくお願いします。
カットだけは今まで範囲選択で選ばなければいけませんでしたので。
単語カットなどもあると嬉しいです。

アルビレオさん>

言葉足らずで申し訳ありませんでした。
秀丸担当さんが乗り気でない場合にそのまま流してもらおうと思っていたので。

[ ]
RE:24893 マクロ使用時のクリップボード取No.24895
秀丸担当 さん 08/05/09 09:54
 

>カットだけは今まで範囲選択で選ばなければいけませんでしたので。
>単語カットなどもあると嬉しいです。

ではそちらも検討したいと思います。

[ ]