|
お世話になってます。
クリップボード履歴とenvchangedの動作と仕様について質問します。
行いたいことは、
・マクロ内でクリップボードを使用する
・ただし、クリップボード履歴にごみを残したくない
です。
いろいろ試してみていくつかハードルがあるのですが、最初につまづいているのは以
下の動作です。
1. クリップボード履歴を取る設定を見る
2. 取る設定になってたら一時的に取らないようにする
3. マクロからクリップボードを使う
4. 設定を元に戻す
このマクロで期待する動作は、3 のクリップボードの内容がクリップボード履歴に残
らないことなのですが、4 で設定を元に戻すとクリップボードに履歴が残ってしまい
ます。
そこで質問です。
Q1. クリップボード履歴を使用する設定にすると、そのタイミングでクリップボード
の中を見て履歴に加えるような動作になっているような感じですが、この動作は仕様
通りでしょうか?
Q2. マクロで使用したクリップボードの内容をクリップボード履歴に残さないように
したいのですが、どのようにすればよいでしょうか?
以下は再現マクロです。
よろしくお願いいたします。
----
// 1. クリップボード履歴を取る設定を見る
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
#ClipHistFlag = getregnum("ClipHistFlag");
closereg;
// 2. 取る設定になってたら一時的に取らないようにする
if (#ClipHistFlag & 0x01) {
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "ClipHistFlag", #ClipHistFlag ^ 0x01;
closereg;
envchanged;
}
/. 3. マクロからクリップボードを使う
selectall;
copy;
// 4. 設定を元に戻す
if (#ClipHistFlag & 0x01) {
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\Env";
writeregnum "ClipHistFlag", #ClipHistFlag;
closereg;
envchanged;
}
|
|