常駐鶴亀のウィンド・ハンドルNo.01850
ひろ さん 01/01/18 16:14
 
 皆さん今日は、ひろです。
 マクロで常駐鶴亀のハンドルを取得することはできるのでしょうか? また
できたとして、Account 関数など、本体のみで有効な関数を使うことができ
るのでしょうか?

[ ]
RE:01850 常駐鶴亀のウィンド・ハンドルNo.02113
秀まるお さん 01/01/30 17:00
 
>  マクロで常駐鶴亀のハンドルを取得することはできるのでしょうか?

 常駐鶴亀用の特別なウィンドウはありません。実は、常駐鶴亀だけが居る状態でも、
見えないところに鶴亀メール本体ウィンドウが居て、それが常駐鶴亀のように振る舞
っています。

 見えない鶴亀本体ウィンドウのハンドルを取り出すことは、やりようによっては出
来ますけど。(昔、バグのせいで、見えないウィンドウのハンドルが返っていまし
た)

[ ]
RE:02113 常駐鶴亀のウィンド・ハンドルNo.02132
ひろ さん 01/01/30 18:49
 
 秀まるおさん今日は、ひろです。
> >  マクロで常駐鶴亀のハンドルを取得することはできるのでしょうか?
>
>  常駐鶴亀用の特別なウィンドウはありません。実は、常駐鶴亀だけが居る状態で
>も、
> 見えないところに鶴亀メール本体ウィンドウが居て、それが常駐鶴亀のように振る舞
> っています。
 この辺りのことは常駐ですから、秀丸と同じことですよね。

 何故この様なことを聞いたか説明させて頂くと、既に公開しているマクロ
で、メールの宛先毎や、プロバイダのメール転送機能などで、他のアカウン
トに届いたメールでも本来のアカウントで送信できるように、ヘッダ設定用
のテンプレートでアカウントの変更が可能になっています。
 ##このメールもそのマクロを使ってメールを受信したアカウントとは別の
アカウントで送信しています。

 そこでヘッダ設定用のテンプレートに書かれたアカウントが、実際に鶴亀
に登録されているか確認する必要があり、
##main =dllfunc("MainWnd");
##k = 0;
while(1){
  if(dllfuncstr("ExecAt",##main,"Account",##k) == $$data[##j])break;
  else if(dllfuncstr("ExecAt",##main,"Account",##k) == "")break;
  ##k = ##k + 1;
}
if(dllfuncstr("ExecAt",##main,"Account",##k) == "")
  message "そんなアカウントは無い";//goto はなるべく使いたくない
といった処理をしています。
 ですから今回の場合、Account がエディタ・ウィンドでも使えれば、何の
問題もないのですが、もし常駐のウィンド・ハンドルが取得できたら汎用性
が高まるなと思い、投稿させて頂いた次第です。
 ##要するに今公開しているマクロはバグがある(^^;。

>  見えない鶴亀本体ウィンドウのハンドルを取り出すことは、やりようによっては出
> 来ますけど。
 長々と書きましたが、そういった訳で「Account をエディタ・ウィンドでも利用可能
にはならないでしょうか?」という要望に変えさせて頂きます。
 変更面倒であれば、鶴亀本体を起動するようにマクロを変更します。

[ ]
RE:02132 常駐鶴亀のウィンド・ハンドルNo.02147
秀まるお さん 01/01/31 15:33
 
>  そこでヘッダ設定用のテンプレートに書かれたアカウントが、実際に鶴亀
> に登録されているか確認する必要があり、

 実際に登録されているか確認するためには、AccountFrom関数を使えばいいです。
これの返す値が""かどうかで判断できます。または、そもそもSetEditorAccount関数
自体にもエラーチェックが付いているので、エラーならアカウント名の誤りと判断し
てもいいと思います。

[ ]
RE:02147 常駐鶴亀のウィンド・ハンドルNo.02155
ひろ さん 01/01/31 19:22
 
 秀まるおさん今日は、ひろです。
>  実際に登録されているか確認するためには、AccountFrom関数を使えばいいです。
> これの返す値が""かどうかで判断できます。または、そもそもSetEditorAccount関数
> 自体にもエラーチェックが付いているので、エラーならアカウント名の誤りと判断し
 関数自体にも付いているんですね。
 それで「エラーなら...」という処理にします。
 有り難うございました。

[ ]