ダブルクリックによるファイルオープンについて
-
長い事愛用しています。
最近アップデートしていなかった事に気づき更新したら、
ダブルクリックでファイルを開くとスクリーン左上にファイルメニューが開いてしまうようになりました。
再現性があるようでしたら治していただけるとありがたいです。
64bit Windows11Pro 24H2 26100.4061
Mery x64 Portable 3.7.16| kuwaya | 返信 -
ご愛用いただきありがとうございます。
> ダブルクリックでファイルを開くとスクリーン左上にファイルメニューが開いてしまうようになりました。
ちょっと気になる動作ですね。
詳しく状況をお伺いしたいのですが、これは、Windows の関連付けでテキストファイルを Mery.exe に関連付けた状態で、エクスプローラーからファイルをダブルクリックして開いたときに発生している、ということでよろしいでしょうか?
また、「ファイルメニュー」というのは、Mery のメインメニューにある [ファイル] のことを指している感じでしょうか?
あわせて、以下のような点も教えていただけると助かります。
- Mery が起動せず、ファイルも開かれず、画面の左上に何かのメニューのようなものが表示される状態でしょうか?
- それとも、Mery は起動してファイルもちゃんと開かれるけれど、起動直後に [ファイル] メニューが開いた状態になっている、という感じでしょうか?
こちらの環境 (下に記載しています) でも試してみましたが、今のところそのような動作は確認できませんでした。同じようなご報告も、現時点では届いていない状況です。
もし「Mery が起動しない」「ファイルも開かない」「謎のメニューが出る」といったケースであれば、Windows 側の関連付けに不具合がある可能性も考えられます。
逆に、「Mery は起動してファイルも開くけど、なぜか [ファイル] メニューが勝手に開いている」という場合は、以下のような影響があるかもしれません。
- プラグインの影響
- 他のアプリ (たとえばマウスジェスチャー系のツールなど) との相性
どちらにも心当たりがないようでしたら、以下の情報をいただけると、調査の参考になります。
- 発生する手順 (できるだけ詳しく)
- 以前のバージョンでは発生していなかったかどうか (その場合、使用していたバージョンもわかると助かります)
- 導入されているプラグイン (アウトライン以外にあれば)
ちなみに、Mery の [ヘルプ] メニュー → [バージョン情報] → [情報のコピー] を使うと、環境情報をクリップボードにコピーできますので、それを貼り付けていただけると、より詳しく調べられます。
お手数をおかけしますがよろしくお願いします。
【こちらで試した環境】
Mery: 3.7.16 (x64, Portable)
Onigmo: 6.2.0
C/Migemo: 1.3
Tidy: 5.8.0
Hunspell: 1.7.1
uchardet: 0.0.8
アウトライン: 3.2.3 (Outline.dll)
OS: Windows 11 (Version 24H2, OS Build 26100.4061, 64-bit Edition)| Kuro | 返信 -
> ご愛用いただきありがとうございます。
>
> > ダブルクリックでファイルを開くとスクリーン左上にファイルメニューが開いてしまうようになりました。
>
> ちょっと気になる動作ですね。
>
> 詳しく状況をお伺いしたいのですが、これは、Windows の関連付けでテキストファイルを Mery.exe に関連付けた状態で、エクスプローラーからファイルをダブルクリックして開いたときに発生している、ということでよろしいでしょうか?
>
> また、「ファイルメニュー」というのは、Mery のメインメニューにある [ファイル] のことを指している感じでしょうか?
>
> あわせて、以下のような点も教えていただけると助かります。
>
> - Mery が起動せず、ファイルも開かれず、画面の左上に何かのメニューのようなものが表示される状態でしょうか?
> - それとも、Mery は起動してファイルもちゃんと開かれるけれど、起動直後に [ファイル] メニューが開いた状態になっている、という感じでしょうか?
>
> こちらの環境 (下に記載しています) でも試してみましたが、今のところそのような動作は確認できませんでした。同じようなご報告も、現時点では届いていない状況です。
>
> もし「Mery が起動しない」「ファイルも開かない」「謎のメニューが出る」といったケースであれば、Windows 側の関連付けに不具合がある可能性も考えられます。
>
> 逆に、「Mery は起動してファイルも開くけど、なぜか [ファイル] メニューが勝手に開いている」という場合は、以下のような影響があるかもしれません。
>
> - プラグインの影響
> - 他のアプリ (たとえばマウスジェスチャー系のツールなど) との相性
>
> どちらにも心当たりがないようでしたら、以下の情報をいただけると、調査の参考になります。
>
> - 発生する手順 (できるだけ詳しく)
> - 以前のバージョンでは発生していなかったかどうか (その場合、使用していたバージョンもわかると助かります)
> - 導入されているプラグイン (アウトライン以外にあれば)
>
> ちなみに、Mery の [ヘルプ] メニュー → [バージョン情報] → [情報のコピー] を使うと、環境情報をクリップボードにコピーできますので、それを貼り付けていただけると、より詳しく調べられます。
>
> お手数をおかけしますがよろしくお願いします。
>
> 【こちらで試した環境】
> Mery: 3.7.16 (x64, Portable)
> Onigmo: 6.2.0
> C/Migemo: 1.3
> Tidy: 5.8.0
> Hunspell: 1.7.1
> uchardet: 0.0.8
> アウトライン: 3.2.3 (Outline.dll)
> OS: Windows 11 (Version 24H2, OS Build 26100.4061, 64-bit Edition)| kuwaya | 返信 -
遅くなりました。
ご確認についてですが
・Mery.exeを.txt他に関連付けた状態でエクスプローラーのファイルをダブルクリックします
ただ新たな気付きがありました
Mery.exeを起動していない状態で上記操作をして起動させてもも再現しません。(同プログラムを終了するまでは以後も再現しません。)
一旦Mery.exeを単独で起動してから再現させる必要があるようです。
また私はMery.exeをタスクバーにピン留めしており、そこから起動して使う事も多いです。・メニュー内容は違いました。
Meryのファイルメニューが
新規作成/開く/閉じて開く/上書き保存/名前をつけて保存/すべて保存//自動保存//挿入/読み直し/改行コード//印刷/印刷プレビュー/{履歴}/保存して閉じる/閉じる/すべて保存して閉じる/すべて閉じる
もしくは
新規作成/開く/閉じて開く/上書き保存/名前をつけて保存/すべて保存//自動保存/読み直し/改行コード//印刷/印刷プレビュー/{履歴}/最近閉じたファイル/保存して閉じる/閉じる/すべて保存して閉じる/すべて閉じる
なのに対して左上に開くメニューは
新規作成/新規作成して貼り付け/新規作成して頻用付き貼り付け/開く/ファイルから検索/{履歴}/最近閉じたファイル/すべて保存/すべて保存して閉じるい/すべて閉じる
でした。
おおざっぱな内容とテキスト履歴に惑わされてしまいました。また発生時の状態は
(Mery.exeは事前に単独で立ち上げた状態なので)Meryは起動していてダブルクリックしたファイルも開くが余計なメニューが画面上に表示されている
です。Meryのプラグイン?やマウスジャスチャー等のマウス拡張ツールは使用していません。
同梱dllのバージョンは見方がわからないのですみません。バージョンについてはすべてx64ポータブルで3.7.6を問題なく使っていて3.7.15にバージョンアップしたら発生しました。
補足
これを書くにあたり色々操作していたらおかしな事が起きたので追記します。
プレーンインストール状態での動作を確認しようと問題無く使っていた3.7.6と最新の3.7.16を新規フォルダに展開して使用したところ3.7.6でも同様の現象が発生しました。
以前との違いは初回起動時にWindowsから実行して良いかどうかの確認ダイアログが表示されて許可する点です(1回許可すれば2度目は出ません)
Meryも3.7.6にした時はそのような動作は無かったので最近になってWindowsに加えられた変更だと思います。
根本原因はMeryではなくWindowsの方にあるような気がしてきました。| kuwaya | 返信 -
ご確認ありがとうございます。状況については把握できました。
> なのに対して左上に開くメニューは
> 新規作成/新規作成して貼り付け/新規作成して頻用付き貼り付け/開く/ファイルから検索/{履歴}/最近閉じたファイル/すべて保存/すべて保存して閉じるい/すべて閉じる
> でした。このメニューは、トレイアイコンを左クリックしたときに表示されるもので、通常は勝手に表示されることはありません。
また、常駐機能 (トレイアイコン) を使っていない場合には、まず出てくることはないと思います。
ただ、仕組み的には、Mery 本体に対して特定のメッセージ番号 (WM_USER ~の範囲) のメッセージが送られると、メニューが表示されるようになっています。
おそらくですが、外部のアプリケーションからそういったメッセージが送られている可能性が考えられます。
もし、常駐アプリや、Windows の動作をカスタマイズするようなソフトが動いていれば、いったん終了してみることで改善するかもしれません。
ちなみに、Windows の一般的なルールとしては、WM_USER ~のメッセージを他のアプリに送るのは推奨されていないのですが、もしそういった挙動をしているアプリや Windows の機能が特定できれば、Mery 側でメッセージ番号を変更するなどの対策も検討できるかもしれません。
> 以前との違いは初回起動時にWindowsから実行して良いかどうかの確認ダイアログが表示されて許可する点です(1回許可すれば2度目は出ません)
これは Windows 側の仕様で、インターネットからダウンロードした ZIP ファイルを展開したあと、デジタル署名のないアプリ (Mery など) を初めて起動すると、確認のダイアログが出ることがあります。
詳しい表示条件までは分かりませんが、ダウンロード数が少ないアプリだったり、Microsoft Defender との信頼がまだ確立されていない場合などに表示されることが多いようです。
| Kuro | 返信 -
フレームウインドウをspyで見たところ WM_USER+16535 を誰かがpostしていましたが犯人はわかりません。
意味不明なハックコードは迷惑をかけるだけなので気が向いた時にでも環境を見直そうと思います。
私の環境の問題でMeryは関係無かったようで、お騒がせしました。| kuwaya | 返信 -
ご確認いただきありがとうございます。
Spy++ が使えるとのことで、調査がしやすくなって本当に助かります。
> フレームウインドウをspyで見たところ WM_USER+16535 を誰かがpostしていましたが犯人はわかりません。
この
WM_USER + 16535は、Mery 本体が内部的に post しているメッセージだと思われます。プラグイン向けのメッセージとして、次のように定義しています。
WM_PLUGINEVENT = (WM_USER + $4097);4097 は 10 進数で 16535 にあたりますので、今回の件とは無関係かと思います。
少し技術的な話になってしまうため省略していたのですが、今回の現象に関係しそうなメッセージは以下になります。
WM_MENUCLOSED = (WM_USER + $204D);10 進数でいうと
WM_USER + 8269ですね。このメッセージが
TMeryFormクラス宛てに post されていないかを確認していただけると、調査の糸口になるかもしれません。このメッセージは、Mery のタスクトレイアイコンを左クリックして [ピン留めする]、[ピン留めを外す]、[削除] のいずれかを選択したときにだけ post するようになっています。
エクスプローラーからファイルをダブルクリックして開いたときには送られないはずです。(とはいえ、絶対にないとは言い切れませんが…)
お手数をおかけして恐縮ですが、ご協力いただけますと助かります。
| Kuro | 返信 -
件のメッセージは発生していたのですが同時に私の環境汚染も発覚し
問題が解決しました。
ただ謎は残ったままです。
一応、ダブルクリック時に発生していたWM_USER+は 8264, 8267, 8268, 8269 の4種類です。メッセージ発生の確認後に問題が発生しない起動方法(事前起動せずに.txtを叩いてMeryを起動)したケースもためそうとしたら
たまたまバージョン番号をチェックしたら3.5.4とまったく違う番号になっていたため調べたところ
今使っている場所とは別の場所に3.5.4があり、.txtとの関連付けはそっちになっていました。試しにそれを削除して関連付けをし直すと報告した動作は発生しなくなりました。
しかし削除したものを元に戻して再び.txtのみを関連付けしても関連付けは3.7.16から変わりませんでした。
関連付けが指示どおりにならない点と
そもそも別バージョンがあったからといっておかしなメッセージが発生する理由にはならないという点は不明のままです。
が、どう見てもWindows側の問題だと思います。
また治ったのは良いのですが現象を再現できなくなってしまいました。なんか関係ないところで大騒ぎして勝手に終えてしまって
本当に申し訳ありませんでした。| kuwaya | 返信 -
ご確認いただきありがとうございます。
なるほど、そういうことでしたか。
> 関連付けが指示どおりにならない点と
> そもそも別バージョンがあったからといっておかしなメッセージが発生する理由にはならないという点は不明のままです。この 2 点について、原因がわかりましたので共有させていただきます。
- 関連付けがうまくいかない件について
Windows の関連付けがうまく変更できない件ですが、これは以前フォーラムでも話題になっていて、どうやら Windows 側の不具合っぽいです。
参考になりそうなトピックがありますので、よければ以下をご覧ください。
【参考】https://www.haijin-boys.com/discussions/7688#discussion-7719
- 別バージョンからおかしなメッセージが発生する件について
Mery Ver 3.7.16 を起動している状態で .txt ファイルをダブルクリックすると、なぜか Ver 3.5.4 が起動してしまう、という状況がありましたが、これが原因だと思います。
というのも、Mery では、仕様上の都合により、バージョンによって内部で使っているメッセージの種類や番号を変更することがあります。
Ver 3.5.4 ではこんな感じで定義されていました。
WM_DO_EXIT = (WM_USER + $204D);このメッセージ (WM_USER + 8269) は、「Mery.exe がすでに起動していたら、新たに Mery.exe を実行したとき、新しいプロセスの起動完了を知らせる」ためのものでした。
ただ、その後のバージョンではこの処理が不要になったため、WM_DO_EXIT は廃止し、その番号を別の用途 (WM_MENUCLOSED = WM_USER + 8269) に割り当てました。
その結果、Ver 3.7.16 が起動中に Ver 3.5.4 を立ち上げようとすると、古いバージョンが送る WM_DO_EXIT を、新しいバージョンが WM_MENUCLOSED として受け取ってしまい、予期しない動作が起きる…という流れのようです。
Mery は複数バージョンを同時に使うことをあまり想定していないので、こういった内部メッセージの仕様は今後も変わる可能性があります。
今回のようなケースは、Windows 側の不具合とアプリ設計上の事情が重なって起きてしまったもので、ちょっと根本的な対策は難しいかもしれません。
申し訳ないのですが、ご理解いただけると助かります。
ということで、kuwaya さんの Windows 環境が汚染されているわけではなく、Windows の仕様的な問題で関連付けの変更が正しく反映されていなかっただけだと思います。
参考リンクの手順で関連付けが直せると思いますので (もうすでに解決済みかもしれませんが)、環境に異常があるわけではないので安心していただければと思います。
| Kuro | 返信 -
詳細な解説に頭が下がります。
いくつかのやっかいな問題にひっかかってしまったようですが無事問題なくなりました。
今後とも長く利用させていただくつもりです。
ありがとうございました。| kuwaya | 返信