クリップボードに高速設定No.09582
おすぎ さん 21/09/15 10:26
 
お世話になっております。

ファイル内の文字列を記憶してクリップボードに設定するマクロを作りました。
setclipboard を使ってクリップボードに設定するのですが
例文のように message 文などを使って時間を置かないと(例では250ms)「設定漏
れ」が生じてしまいます。
時間を置かずに高速で設定する方法ってあるのでしょうか?

gofiletop;
#num = #num + 1;
while(1){
searchdown "^.+?$", regular;
if(result!){
#nummax = #num - 1;
break;
}
$word[#num] = gettext(seltopx, seltopy, selendx, selendy);
moveto selendx, selendy;
#num = #num + 1;
}

#num = #nummax;
while(#num > 0){
#ret = message ("$word[" + str(#num) + "] = " + $word[#num], "記憶中!!", 0x0
0, 250, 1);
setclipboard $word[#num];
#num = #num - 1;
}

[ ]
RE:09582 クリップボードに高速設定No.09583
秀丸担当 さん 21/09/15 17:15
 

クリップボードは、通常は、設定したその瞬間にすぐできるはずです。
できないとしたら何かしらの問題があると思うのですが、マクロの例では設定するだ
けのようで、具体的にどういう問題があるのかわかりませんでした。
貼り付ける処理も合わせた例があると、何かわかるかもしれません。

クリップボードを設定したときは他のアプリにも通知されるので、他のアプリの起動
状態も手がかりになると思います。
コピーと同時に他のアプリがクリップボードを操作すると失敗する可能性もあります。

秀丸エディタ自身では、[その他]→[動作環境]→[常駐機能]のクリップボード履歴が
あります。
秀丸エディタ自身は、クリップボード履歴にちゃんと格納されたかを内部的にチェッ
クしながら動作しているので、問題は確認できなかったのですが、[その他]→[動作
環境]→[トラブル対策]→[その他のトラブル対策]→[クリップボードの監視に新しい
方式(Clipboard Format Listener)を使う]のON/OFFを変更してみると変化がある可能
性があります。

関係あるかわからないですが、最近のWindowsではネットを通じた同期の機能がある
ようで、これが有効になっているとうまくクリップボードの格納がうまくできないと
思わしき事例がありました。
参考:
https://www.maruo.co.jp/hidesoft/3/x02567_.html


[ ]
RE:09583 クリップボードに高速設定No.09584
おすぎ さん 21/09/15 17:26
 
秀丸担当さま

ありがとうございます。

ご指摘の点をあたってみます。

[ ]