Meryでファイルを開く時、他のウィンドウの順番が変わることがある

  1. 初めまして。Mery(2.6.7)をお試しで使い始めた者です。
    以下のような不審な挙動を発見しました。

    現在、ウィンドウが上から順に、Mery→ファイルエクスプローラー→Firefox→タスクマネージャーを開いており、Meryでtest.txtというファイルを開いていたとします。
    ここで、ファイルエクスプローラーを最前面に移動させて、test.pyをダブルクリックしてMeryで開こうとしました。(当然ですが、ダブルクリック直前時のウィンドウは上から順に、ファイルエクスプローラー→Mery→Firefox→タスクマネージャーです)
    しかし、test.pyをダブルクリックしてMeryで開くと、ウィンドウは上から順に、Mery→ Firefox→ファイルエクスプローラー→タスクマネージャーなどのように、他のウィンドウの順番まで変わることがあります。

    条件などは分からず、順番の変わり方もまちまちですが、とにかく予想と違う変わり方をするので、正直鬱陶しいです。

    もしバグであるならば、修正をお願い致します。または、対処法などがあれご教示下さい。
    何卒、宜しくお願い致します。
    OSは、Windows10 HOME 64bit Version 1803 Build 17134.48 です。

     |  Shin  |  返信
  2. 初めまして、Mery を開発している者です。
    Mery をお試しくださりありがとうございます。

    クリーンインストールした Windows 10 1803 64bit + Mery 64 bit の環境で FireFox をインストールして検証してみましたが現象を再現できませんでした。

    考えられる原因としては…

    1. Mery でマクロやプラグインを使っていませんか?
    (ウィンドウがアクティブになったときに発動するマクロなど)
    2. 常駐アプリとの競合
    (ランチャーアプリやウイルスチェックソフトなど)
    3. マルチディスプレイ環境や、デスクトップの文字の大きさが 100% 以外に設定されていたりしませんか?
    4. 逆に FireFox のアドオンが入っていたりしませんか
    (ウィンドウが非アクティブになったときに動作するようなものなど)
    5. Mery でタブモードを無効にされていたりとかしませんでしょうか?

    このあたりでお気づきの点などございましたら教えていただけるとヒントになるかもしれません。

     |  Kuro  |  返信
  3. お返事をくださり、ありがとうございます。
    現在、ご指摘をくださった点を検証しております。
    確認できたことを報告させていただきます。

    > 1. Mery でマクロやプラグインを使っていませんか?
    > (ウィンドウがアクティブになったときに発動するマクロなど)

    Meryはインストールしたばかりですので、デフォルトであったOutline以外のプラグインはありませんし、これは使っておりません。
    マクロも使っておりません。

    > 3. マルチディスプレイ環境や、デスクトップの文字の大きさが 100% 以外に設定されていたりしませんか?

    マルチディスプレイは使っておりません。
    デスクトップの文字の大きさを100%にしてみましたが、変化はありませんでした。
    前回は書きませんでしたが、もしかしたらハード的な問題の可能性もありますので、追加報告します。使っているPCはFujitsu製ノートパソコン(LIFEBOOK AH53/X)です。

    > 5. Mery でタブモードを無効にされていたりとかしませんでしょうか?

    タブモードというのが、「一つのウィンドウで複数のファイルを開く」モードのことを指すのなら、それは有効にしております。

    アドオンや常駐アプリに関しては検討中です。
    なお、前回はFirefox、ファイルエクスプローラー、タスクマネージャーのみを書きましたが、MicrosoftOffice ExcelやMicrosoftOffice Word、コマンドプロンプトなど、他のソフトでも順番が変わります。

     |  Shin  |  返信
  4. タブモードで使用されているとのことのなので可能性は低いと思いますが、SDIモード時にマクロで StdOut を利用すると ActiveDocument が替わってしまうのと同根かしら。
      var WshShell = new ActiveXObject("WScript.Shell");
      var oExec = WshShell.Exec('%comspec% /c cd 2>&1');
      outputbar.visible=true;
      outputbar.write(oExec.StdOut.ReadAll());
    64bit版、32bit版ともに再現します。

     |  匿名です  |  返信
  5. タブモードでウインドウ分離して検証したら再現しました。替わってしまうのは ActiveDocument ではなく ActiveWindow(そんなプロパティは存在しない)でした。

     |  匿名です  |  返信
  6. みなさんご返信ありがとうございます。

    こちらでも引き続き FireFox 以外のアプリケーションなどでウィンドウの順番を変えたりして検証をしてみましたが、現象の再現には至っておりません。

    Mery、Edge、FireFox、Chrome、エクスプローラー、タスクマネージャーを重ねて表示した状態で順番を記録しておいて、エクスプローラーから Mery に関連付けしたファイルをダブルクリックで開く。

    の手順で合ってますよね?
    何度試しても順番が入れ替わる様子はありません… ^^;

    > マクロも使っておりません。
    マクロか、Windows 10 の画面の高解像度関連が怪しかったのですが違ったようですね。
    該当の項目がないとなると、今のところ他に原因が思いつきません。

    > 匿名です さん
    ご協力ありがとうございます。

    タブモードでウィンドウ分離しても再現できないのですが、具体的な再現手順がお分かりでしたら教えていただけると助かります。

    ほかに考えられる原因をひねり出しますと、Windows 10 の仮想デスクトップを使用されているとか、あとは、MacType をインストールされているとかぐらいでしょうか。

     |  Kuro  |  返信
  7. Windows7 64bit、Mery(x64) 2.6.7
    思ったよりも根が深いかも?(特に困っているわけではないのですけど)

    Meryで「無題-1」「無題-2」の Window があるとして、「無題-1」→「無題-2」の順にアクティブにして検証用マクロを実行すると ActiveWindow が「無題-1」に替わります。
    「無題-1」→「Window Explorer」→「無題-2」のように、間に他のアプリ(デスクトップのクリックだけでも同じ)を挟むと ActiveWindow は変わりませんでした。

     |  匿名です  |  返信
  8. 皆さん、ご協力ありがとうございます。

    > Mery、Edge、FireFox、Chrome、エクスプローラー、タスクマネージャーを重ねて表示した状態で順番を記録しておいて、エクスプローラーから Mery に関連付けしたファイルをダブルクリックで開く。

    その手順で合っています。

    > ほかに考えられる原因をひねり出しますと、Windows 10 の仮想デスクトップを使用されているとか、あとは、MacType をインストールされているとかぐらいでしょうか。

    MacTypeなるソフトの存在を初めて知りました。もちろんインストールしてません。
    仮想デスクトップに関しては、当時は開いていましたが、消しても変わりませんでした。

    以前ご指摘いただいた常駐アプリについてですが、ウィルスバスター、TeamViwer、Google Drive、Dropbox、PureText、Gogle Chromeなどを止めてみましたが、やっぱり変わりません。
    Firefoxアドオンにも、該当しそうなものはありませんでした。

     |  Shin  |  返信
  9. 返信が遅くなってしまい申し訳ございません。
    その後も調査を継続していました。

    匿名ですさんのご指摘のマクロを実行すると、確かにウィンドウの順番が変わりましたが、これはチラッとコマンドプロンプトが最前面に上がっているようなのでその影響かもしれません。

    結論から申し上げます、すみません、匿名ですさんの件はギブアップです。

    Mery のソースや開発環境 (Delphi) の内部までチェックしてみましたが原因はわかりませんでした。
    数日 + 日曜日まるまる費やして成果ゼロ…。

    > Shin さん
    ご返信ありがとうございました。
    現象としましては、匿名ですさんのご指摘の件とは別のように思えます。

    こちらでもなるべく近い環境になるように Chrome, FireFox, TeamViewer, PureText, Google Drive, Dropbox を常駐させて検証しておりましたが現象を再現することはできませんでした。

    Shin さんの件はこちらでも現象が再現できれば、解決の糸口になるかもしれませんが、私のほうではこれ以上試せそうなことや原因が思いつかない状態です。

    常駐アプリの入っている検証環境はしばらく置いておきますので何かお気づきの点などがございましたらご連絡いただければと思います。

    以上、よろしくお願いいたします。

     |  Kuro  |  返信
  10. 皆さん、ありがとうございます。

    > こちらでもなるべく近い環境になるように Chrome, FireFox, TeamViewer, PureText, Google Drive, Dropbox を常駐させて検証しておりましたが現象を再現することはできませんでした。
    > Shin さんの件はこちらでも現象が再現できれば、解決の糸口になるかもしれませんが、私のほうではこれ以上試せそうなことや原因が思いつかない状態です。
    > 常駐アプリの入っている検証環境はしばらく置いておきますので何かお気づきの点などがございましたらご連絡いただければと思います。

    そうでしたか…
    残念ですが、私の方もお手上げです。

    とはいえこの謎の現象を除けば、Meryは使いやすく便利なエディタで、私は満足しております。
    今後も、ありがたく使わせていただきます。
    お手数をおかけして済みませんでした。
    ご協力ありがとうございました。

     |  Shin  |  返信
  11. Kuroさま
    >結論から申し上げます、すみません、匿名ですさんの件はギブアップです。
    >
    >Mery のソースや開発環境 (Delphi) の内部までチェックしてみましたが原因はわかりませんでした。
    >数日 + 日曜日まるまる費やして成果ゼロ…。

    お手間を取らして申し訳ありません。
    特に困っていないのは一応の対処療法があるからなのです↓
      var title = document.Name + ((document.saved) ?"":"*") + " - Mery";
      /* stdout にアクセスするマクロ */
      WshShell.Run(
         "mshta.exe \"javascript:resizeTo(0,0);setTimeout(function(){new ActiveXObject('WScript.Shell').AppActivate('" + title + "');close();}, 1);\""
      ,0);

    Shin さま
    .py のファイルということですが、Mery が Python の実行環境や IDE の外部エディタとして登録されていて、いったん別ウインドウを経由しているとかはないですよね。
    #そんな機能をもつ Python 処理系があるかは知らない

     |  匿名です  |  返信
  12. > .py のファイルということですが、Mery が Python の実行環境や IDE の外部エディタとして登録されていて、いったん別ウインドウを経由しているとかはないですよね。
    > #そんな機能をもつ Python 処理系があるかは知らない

    違います。.pyの拡張子をMeryに関連付けしてるだけです。

     |  Shin  |  返信
スポンサーリンク