HTMLメールエディタを閉じるとクリップボNo.01823
ヒラメ さん 17/08/07 14:16
 
HTMLメール編集モードのメールエディタを開き、その中でコピーを
行うと、メールエディタを閉じた際にクリップボードの内容が消去
されてしまいます。内容を保持することはできないでしょうか。
(HTMLメール編集アドインが使用された場合スレッドを破棄する
 という修正の影響??)

秀丸メール Version 6.73 (64bit)
HTMLメール Viewer Version 3.09
HTMLメール編集アドイン Version 1.37
Windows 10 Pro (Creators Update), 1703 (15063.483) (64bit)

[ ]
RE:01823 HTMLメールエディタを閉じるとクNo.01826
秀まるお2 さん 17/08/07 18:01
 
 HTMLメール編集アドインを起動した後のウィンドウを閉じたとしても、クリッ
プボードが書き換わることは無いはずだと思います。消去されることも無いはず
です。

 こちらで簡単にテストした限りは大丈夫そうでした。

 ソースコード上も、クリップボードにアクセスするような処理は、「書式無し
貼り付け」ってコマンドの処理くらいしか無いように思います。

> (HTMLメール編集アドインが使用された場合スレッドを破棄する
>  という修正の影響??)

 スレッドを破棄してもクリップボードが書き換わることは無いはずだと思いま
すけども。「ATOKとの組み合わせでおかしな・・・」のオプションONだと確実に
スレッドを破棄しますが、それでも大丈夫そうでした。

 何かクリップボードに関係する常駐ソフト類をお使いだったりしますでしょう
か。

 ちょっと再現方法が不明です。

[ ]
RE:01826 HTMLメールエディタを閉じるとクNo.01827
ヒラメ さん 17/08/07 19:52
 
こちらでは以下の手順で再現できました。

1. PC再起動
2. 秀丸メールを起動
3. 新規テキストメールを作成
4. 表示>HTMLメール編集
5. 本文に適当に入力してそれをコピー
6. ファイル>閉じる>保存しない
7. 秀丸エディタを起動して貼り付け->何も起きない

5の後で直ぐに秀丸エディタを起動して貼り付けを実行しておくと、
なぜか7の所でも貼り付けができました。コピーの後で別アプリに
貼り付けせずに閉じるのが再現条件なのかもしれません。

ということで再現できますでしょうか。

[ ]
RE:01827 HTMLメールエディタを閉じるとクNo.01828
ヒラメ さん 17/08/07 20:30
 
1点書き忘れました。
クリップボード系の常駐ソフトは何も使っていません。

[ ]
RE:01828 HTMLメールエディタを閉じるとクNo.01829
秀まるお2 さん 17/08/08 09:36
 
 今のところ再現できてないのですが、クリップボードをクリアするような処理
を改めて見直してみたんですが、秀丸メールやHTMLメール編集アドインの中には
無いので、やってるとしたら、WebBrowserコントロールがってことかなぁと思い
ます。

 だとすると、Internet Explorerにそういう設定(プライバシー関係の設
定?)があって、それのせいでクリアされてたりするのかなぁという気がしまし
た。

 今ちょっと、Internet Explorerの設定を見た限りは、そんな設定は無いよう
ですけども。

 とりあえず、Internet Explorerを起動して何か文字列をコピーして、
Internet Explorerを終了して、それでクリップボードがクリアされるとかって
こと無いでしょうか。1回試してみて欲しいです。

 それともう1つの可能性として、もしかしてマクロが絡んでる可能性もあるか
もしれないと思いました。ただ、自動起動マクロの中にはエディタ・ウィンドウ
を閉じるタイミングでってのは無いのですけども・・・。

 マクロの中で、

   setclipboard "";

 とか、

   beginsel;
   copy;

 とかやってると現象が起きるので、例えば自動起動マクロを一回無しにしてみ
るとか、あるいはもしも「マクロ・マクロ登録 - コマンド置き換え」で何かマ
クロに置き換えてるコマンドがあれば、それを無しにしてどうか試してみるとか
って作戦はどうでしょうか。

------------------------------------------------------------------
 1つ別の回避策を考えました。クリップボードは、OpenClipboardってAPIを呼
び出してアクセス権限を確保して、CloseClipboard呼び出しして権限を解放する
まで、他のウィンドウはクリップボードにアクセスできないです。それを逆手に
とって、HTMLメール編集アドインを終了する直前にOpenClipboard呼び出しして、
アドインが完全に終了したら、CloseClipboardしてやると、もしも誰かがクリッ
プボードを書き換えようとしても失敗すると思います。

 デバッグ用のオプションで一回そういう処理を追加して、それでテストしてい
ただく作戦があると思います。

 その作戦で、オプション追加をやってみようと思います。
 (ということで、またテストお願いしないといけないです)

[ ]
RE:01829 HTMLメールエディタを閉じるとクNo.01835
ヒラメ さん 17/08/08 14:32
 
>  とりあえず、Internet Explorerを起動して何か文字列をコピーして、
> Internet Explorerを終了して、それでクリップボードがクリアされるとかって
> こと無いでしょうか。1回試してみて欲しいです。

IE(とついでにEdge、Chrome、それぞれのプライベートモードも)で
試してみましたが、特に問題はなくペーストできました。

>  それともう1つの可能性として、もしかしてマクロが絡んでる可能性もあるか
> もしれないと思いました。

自動起動マクロは秀丸メール起動時とメール送信時に実行されるように
しています。ただコピー系の処理は行っていません。試しにマクロを無効な
ファイル名にした状態でも試しましたが状況変わらずでした。
またコマンド置き換えは一切使っていませんでした。

念のためデバッグモード1にもしてみましたが状況変わらずです。。。

[ ]
RE:01835 HTMLメールエディタを閉じるとクNo.01837
秀まるお2 さん 17/08/08 17:57
 
 設定ファイルも送っていただきまして、それでもテストしてみたんですが再現
せずでした。

 ただ、1つ解決のヒントを見つけました。

 HTMLメール編集アドインで何か文字列をコピーして、その後閉じると、常駐秀
丸エディタのクリップボード履歴に同じ文字列が2重に登録されました。たしか
にウィンドウを閉じるタイミングでもう一回クリップボードに同じ文字列が
セットされてるようです。

 WebBrowserコントロールをDestroyするタイミングでセットされてるようです。

 OpenClipboardでクリップボードをロックする作戦をやってみたんですが、
OpenClipboardでロックできるのは別プロセスだけみたいでして、秀丸メール自
身がOpenClipboardしっぱなしにしてても、WebBrowserコントロール自体は
OpenClipboardに成功するようで、僕の作戦はダメでした。

 試しに、秀丸エディタで無理矢理クリップボードをオープンしっぱなしにした
ら、WebBrowserコントロールがクリップボードを書き換えるのは失敗するようで
した。

 ということで・・・・考えた作戦が・・・・

 WebBrowserコントロールをDestroyする前に、TuruKame.exeを特別なコマンド
ラインで起動します。そのTurukame.exeはクリップボードをオープンしたまま待
機します。

 で、WebBrowserコントロールをDestroyして、その後少し待ってから、先ほど
起動したTuruKame.exeに指示を出して、クリップボードを解放させます。
プロセスも終了させます。

 そうすればうまくいく(クリップボードの書き換えが失敗してくれる)ような
気がします。

 そういう作戦でトライしてみますので、少々お待ちください。

[ ]