|
はじめまして、ひろくんといいます。
目的の動作ができず、何か対応策がないかと思い、お知恵を拝借
致したく、投稿します。
目的は、とあるマクロで複数のファイルの内容を検索したい時に、
・既に開いてあるファイルは、setactivehidemaruで切り替え
・開いていないファイルは、openfile "/h"+$FileNameで開く
とする時に、上記の処理の判断でfindhidemaruを使ったのですが、
既に開いているにもかかわらず、存在しないと戻りが発生するのです。
(findhidemaru("hogehoge.c") == -1 が成立してしまう。)
原因はわかっていて、MicrosoftのTweak UIのX-Mouseで
”ポインタに追従して、アクティブウインドウをを切り替える”を有効
”ウインドウを手前に移動する”を無効
にして、
再現試験
1.対象マクロをキーに割り当てておく(私の場合、ctrl+_)
2.マクロを実行するファイル(File1)を検索対象のファイル(File2)と関係の無いフ
ァイル
(File3)を開く
3.File3をマウスでクリックして、アクティブにする
4.File2をマウスでクリックして、アクティブにする
5.マウスをFile1に移動(X-Mouseの機能でアクティブになる)
6.マクロを実行する→検索に失敗する。
これが、発生しているときに、hidemarucountを実行してみると、開いてある
秀丸より、少ない値が出ます。場合によっては、"1"になってしまいました。
(File3は、無くても発生します)
どうも、X-MouseでActiveを切り替えた時にうまくないようなのです。
私の方で試したのは、
・"setactivehidemaru 0;"を実行を追加 → 効果なし
・"setactivehidemaru 1;","setactivehidemaru 0;"の実行を追加 → 効果なし
・"nexthidemaru;","prevhidemaru;"の実行を追加 → 効果なし
・"message "hoge";"の実行を追加 → 効果あり(しかし、処理が連続しない
の不採用)
X-Mouseは使用しないというのは、無しでなにか対応方法がないかと...m(_^_)m
ちなみに、OSはWindowsXPです。
テスト環境
File1 = src.txt
File2 = ref1.txt
File3 = dummy.txt
としたとき、test.macで、
title "file:ref1.txt count:"+str(hidemarucount)+" No:"+str(findhidemaru("ref
1.txt"));
title -1;
を記述して、文中の再現試験をしていただけると再現します。
以上、よろしくお願いいたします。(長文、失礼しました)
|
|