スレッド: [becky-pin:02203] プロファイル/メールボックスを追加するには?

スレッド

[becky-pin:02203] プロファイル/メールボックスを追加するには?

[ | ▲ / | ]
2203
Subject:
[becky-pin:02203] プロファイル/メールボックスを追加するには?
From:
Miura Takuma <mueller@...>
Date:
Wed, 15 May 2002 02:47:28 +0900
X-Mailer:
Becky! ver. 2.05 (beta3)
Message-Id:
<20020515024725.227E.MUELLER‐at‐csc.jp>
 Becky-pin SDK for Delphi + Delphi Personal 6

 プラグインから、プロファイルやメールボックスを新規に追加するには
 どうすればいいのでしょう?

 単に PRF*.ini や *.mb を作成するだけでは、Beckyを再起動しないと
 新しいプロファイル/メールボックスとして認識されません。

 たとえば BkNews なんかではどうやって実現しているんでしょうか。
--

::===========================================================
:: 三浦 琢磨  <mailto:mueller@...>
:: PGP fingerprint: 42FC 4F53 2FB6 5810 1B1B 97A3 F166 2DE7
::===========================================================

[becky-pin:02204] Re: プロファイル/メールボックスを追加するには?

[ | / | ]
Subject:
[becky-pin:02204] Re: プロファイル/メールボックスを追加するには?
From:
shinonon <shinonon@...>
Date:
Wed, 15 May 2002 15:41:09 +0900
X-Mailer:
Becky! ver. 2.05 (beta3)
Message-Id:
<20020515153155.42E9.SHINONON‐at‐jcom.home.ne.jp>
In-Reply-To:
2203
References:
2203
しののんです。

Miura Takuma さんの「[becky-pin:02203] プロファイル/メールボックスを追
加するには?」より…

>  たとえば BkNews なんかではどうやって実現しているんでしょうか。

力業です。(^^;

Becky の「ファイル→メールボックス→新規作成」のコマンドIDを投げてやり、
出現した「新規メールボックスの作成」ウィンドウを FindWindow で探して、さ
らにその中の EditBox の WindowID を探して、適切な文字列をセットして……
……というような感じです。

これらを1つのプロシージャで実行すると、ウィンドウを表示したまま固まって
しまうので、
・Beckyに新規メールボックス作成コマンドを送る
・新規メールボックス作成ウィンドウを操作する (←これは RegisterCommand
 で登録した自分自身のコマンド)
というコマンドIDを PostMessage で順番に送ってやることにより処理を固まら
せないようにする、というような工夫もしています。

▲▽《篠田 敦》      shinonon@... ▽▲
▲▽ http://members.jcom.home.ne.jp/shinonon/ ▽▲

[becky-pin:02205] Re: プロファイル/メールボックスを追加するには?

[ | / | ]
2205
Subject:
[becky-pin:02205] Re: プロファイル/メールボックスを追加するには?
From:
Miura Takuma <mueller@...>
Date:
Thu, 16 May 2002 00:37:31 +0900
X-Mailer:
Becky! ver. 2.05 (beta3)
Message-Id:
<20020516001614.2D3A.MUELLER‐at‐csc.jp>
In-Reply-To:
2204
References:
2203 2204
shinononさんの<20020515153155.42E9.SHINONON@jcom.home.ne.jp>から
>>力業です。(^^;
>>
>>Becky の「ファイル→メールボックス→新規作成」のコマンドIDを投げてやり、
>>出現した「新規メールボックスの作成」ウィンドウを FindWindow で探して、さ
>>らにその中の EditBox の WindowID を探して、適切な文字列をセットして……
>>……というような感じです。

 ダイアログが肉眼で見えないので、まさか力業とは思いませんでした(^^;)。
 ちょっと試してみます。ありがとうございました。


 こういう力業で実現した機能などをまとめてラップした「拡張API」なんて
 作ったらおもしろそうですね。
--

::===========================================================
:: 三浦 琢磨  <mailto:mueller@...>
:: PGP fingerprint: 42FC 4F53 2FB6 5810 1B1B 97A3 F166 2DE7
::===========================================================

[becky-pin:02207] Re: プロファイル/メールボックスを追加するには?

[ | / | ]
2207
Subject:
[becky-pin:02207] Re: プロファイル/メールボックスを追加するには?
From:
Miura Takuma <mueller@...>
Date:
Sun, 19 May 2002 19:50:07 +0900
X-Mailer:
Becky! ver. 2.05 (beta3)
Message-Id:
<20020519194734.3946.MUELLER‐at‐csc.jp>
In-Reply-To:
2205
References:
2204 2205
 「新規メールボックスの作成」ダイアログのOKボタンを押させるところまでは
 実装できましたが、次のアカウント設定のところで挫折(^^;)。

 タブをめくることができません。
 TCM_SETCURSELを送ればいいようですが、
 SysTabControl32に送りつけてもダイアログに送りつけても反応しないのです。
--

::===========================================================
:: 三浦 琢磨  <mailto:mueller@...>
:: PGP fingerprint: 42FC 4F53 2FB6 5810 1B1B 97A3 F166 2DE7
::===========================================================

[becky-pin:02208] Re: プロファイル/メールボックスを追加するには?

[ | / | ]
Subject:
[becky-pin:02208] Re: プロファイル/メールボックスを追加するには?
From:
shinonon <shinonon@...>
Date:
Sun, 19 May 2002 20:52:52 +0900
X-Mailer:
Becky! ver. 2.05 (beta3)
Message-Id:
<20020519205159.8E66.SHINONON‐at‐jcom.home.ne.jp>
In-Reply-To:
2207
References:
2205 2207
しののんです。

Miura Takuma さんの「[becky-pin:02207] Re: プロファイル/メールボックス
を追加するには?」より…

>  タブをめくることができません。
>  TCM_SETCURSELを送ればいいようですが、
>  SysTabControl32に送りつけてもダイアログに送りつけても反応しないのです。

TCM_SETCURFOCUS ではどうでしょう?

▲▽《篠田 敦》      shinonon@... ▽▲
▲▽ http://members.jcom.home.ne.jp/shinonon/ ▽▲

[becky-pin:02209] Re: プロファイル/メールボックスを追加するには?

[ | / | ]
2209
Subject:
[becky-pin:02209] Re: プロファイル/メールボックスを追加するには?
From:
Tietew <tietew@...>
Date:
Sun, 19 May 2002 22:08:32 +0900
X-Mailer:
Becky! ver. 2.00.11
Message-Id:
<20020519220601.A996.TIETEW‐at‐raug.net>
In-Reply-To:
2208
References:
2207 2208
Tietew です。

On Sun, 19 May 2002 20:52:52 +0900
In article <20020519205159.8E66.SHINONON@jcom.home.ne.jp>
[[becky-pin:02208] Re: プロファイル/メールボックスを追加するには?]
shinonon <shinonon@...> wrote:

> >  タブをめくることができません。
> >  TCM_SETCURSELを送ればいいようですが、
> >  SysTabControl32に送りつけてもダイアログに送りつけても反応しないのです。
>
> TCM_SETCURFOCUS ではどうでしょう?

Tab の parent window (property sheet) に PSM_SETCURSEL では。


—[ Tietew ]——————————————————————————
メ : tietew@... / tietew@... / tietew@...
ホペ: http://www.tietew.net/     Tietew Windows Lab.
     http://www.masuclub.net/   鱒倶楽部
指紋: 26CB 71BB B595 09C4 0153  81C4 773C 963A D51B 8CAA

[becky-pin:02210] Re: プロファイル/メールボックスを追加するには?

[ | / | ]
2210
Subject:
[becky-pin:02210] Re: プロファイル/メールボックスを追加するには?
From:
Miura Takuma <mueller@...>
Date:
Tue, 21 May 2002 23:08:09 +0900
X-Mailer:
Becky! ver. 2.05 (beta3)
Message-Id:
<20020521230412.6CEC.MUELLER‐at‐csc.jp>
In-Reply-To:
2209
References:
2208 2209
 TCM_SETCURFOCUS, PSM_SETCURSEL どちらも試そうとしたのですが、
 どうやらメッセージを投げる以前に、アカウント設定画面を
 FindWindowできていないようなのです。

 ↓これらのプロシージャを PostMessage で次々に呼び出しているのですが・・
 もしかして、「メールボックスの設定」ダイアログが生成される前に
 ControlBoxDialogが実行されてしまっているのでしょうか・・・


// 「新規メールボックスの作成」ダイアログを探し出して操作
procedure ControlNewBoxDialog(h : HWND; LPARAM : Longint); stdcall;
var
 hDialog: hWnd;
begin
 hdialog := FindWindow( '#32770', '新規メールボックスの作成');
 if hdialog=0 then exit;
 hdialog := FindWindowEx( hDialog, 0, 'Button', 'OK' );
 if hdialog=0 then exit;
 SendMEssage( hdialog, WM_LBUTTONDOWN,0,0);
 SendMessage(hdialog,WM_LBUTTONUP,0,0);
end;

// 「メールボックスの設定」ダイアログを探し出して操作
procedure ControlBoxDialog(h : HWND; LPARAM : Longint); stdcall;
var
 hDialog: hWnd;
begin
 hDialog := FindWindow( '#32770', '[]の設定');
 if hdialog=0 then exit;
//  hdialog := FindWindowEx( hDialog, 0, '#32770', '' );
//  if hdialog=0 then exit;
//  hdialog := FindWindowEx( hDialog, 0, 'SysTabControl32', '' );
//  if hdialog=0 then exit;
 SendMessage( hdialog, PSM_SETCURSEL, 4, 0);
end;


--

::===========================================================
:: 三浦 琢磨  <mailto:mueller@...>
:: PGP fingerprint: 42FC 4F53 2FB6 5810 1B1B 97A3 F166 2DE7
::===========================================================

[becky-pin:02211] Re: プロファイル/メールボックスを追加するには?

[ | / | ]
2211
Subject:
[becky-pin:02211] Re: プロファイル/メールボックスを追加するには?
From:
Tietew <tietew@...>
Date:
Wed, 22 May 2002 00:36:34 +0900
X-Mailer:
Becky! ver. 2.00.11
Message-Id:
<20020522001847.76E3.TIETEW‐at‐raug.net>
In-Reply-To:
2210
References:
2209 2210
Tietew です。

On Tue, 21 May 2002 23:08:09 +0900
In article <20020521230412.6CEC.MUELLER@csc.jp>
[[becky-pin:02210] Re: プロファイル/メールボックスを追加するには?]
Miura Takuma <mueller@...> wrote:

>  TCM_SETCURFOCUS, PSM_SETCURSEL どちらも試そうとしたのですが、
>  どうやらメッセージを投げる以前に、アカウント設定画面を
>  FindWindowできていないようなのです。
>
>  ↓これらのプロシージャを PostMessage で次々に呼び出しているのですが・・
>  もしかして、「メールボックスの設定」ダイアログが生成される前に
>  ControlBoxDialogが実行されてしまっているのでしょうか・・・

PostMessage(WM_COMMAND, ID_FILE_NEW_MAILBOX, 0);
しただけではダイアログは生成されません。その後 B2 本体のメッセー
ジポンプが回らなければ成りません。

かといって GetMessage -> DispatchMessage すると,ダイアログが閉
じるまで制御が帰ってきません :-)

BkNews はどうやってるんでしょうか?>しののんさん〜
別スレッド?

私なら SetWindowsHookEx で WH_CBT をフックしてダイアログの生成を
捕まえ,そこでサブクラス化して WM_INITDIALOG を引っかけて適当に
コントロールに値を突っ込んでから PostMessage(WM_COMMAND, IDOK)
してしまうんじゃないかと思います :-p
# あー,CreateDialogIndirectParamA をフックしないとダメかな?

> // 「新規メールボックスの作成」ダイアログを探し出して操作
> procedure ControlNewBoxDialog(h : HWND; LPARAM : Longint); stdcall;
> var
>   hDialog: hWnd;
> begin
>   hdialog := FindWindow( '#32770', '新規メールボックスの作成');
>   if hdialog=0 then exit;
--ここ
>   hdialog := FindWindowEx( hDialog, 0, 'Button', 'OK' );
>   if hdialog=0 then exit;
>   SendMEssage( hdialog, WM_LBUTTONDOWN,0,0);
>   SendMessage(hdialog,WM_LBUTTONUP,0,0);
--は
SendMessage(hdialog, WM_COMMAND, IDOK, 0);
だけでオッケー。




—[ Tietew ]——————————————————————————
メ : tietew@... / tietew@... / tietew@...
ホペ: http://www.tietew.net/     Tietew Windows Lab.
     http://www.masuclub.net/   鱒倶楽部
指紋: 26CB 71BB B595 09C4 0153  81C4 773C 963A D51B 8CAA

[becky-pin:02212] Re: プロファイル/メールボックスを追加するには?

[ | / | ]
2212
Subject:
[becky-pin:02212] Re: プロファイル/メールボックスを追加するには?
From:
Tietew <tietew@...>
Date:
Wed, 22 May 2002 01:49:01 +0900
X-Mailer:
Becky! ver. 2.00.11
Message-Id:
<20020522014743.76E9.TIETEW‐at‐raug.net>
In-Reply-To:
2211
References:
2210 2211
Tietew です。

On Wed, 22 May 2002 00:36:34 +0900
In article <20020522001847.76E3.TIETEW@raug.net>
[[becky-pin:02211] Re: プロファイル/メールボックスを追加するには?]
"Tie\tew" <tietew@...> wrote:

> BkNews はどうやってるんでしょうか?>しののんさん〜
> 別スレッド?

あ,<20020515153155.42E9.SHINONON@jcom.home.ne.jp> に書いてある
じゃないですか。(^^;


—[ Tietew ]——————————————————————————
メ : tietew@... / tietew@... / tietew@...
ホペ: http://www.tietew.net/     Tietew Windows Lab.
     http://www.masuclub.net/   鱒倶楽部
指紋: 26CB 71BB B595 09C4 0153  81C4 773C 963A D51B 8CAA

[becky-pin:02215] Re: プロファイル/メールボックスを追加するには?

[ | / | ]
Subject:
[becky-pin:02215] Re: プロファイル/メールボックスを追加するには?
From:
shinonon <shinonon@...>
Date:
Wed, 22 May 2002 11:06:19 +0900
X-Mailer:
Becky! ver. 2.05 (beta4)
Message-Id:
<20020522110320.A7BB.SHINONON‐at‐jcom.home.ne.jp>
In-Reply-To:
2210
References:
2209 2210
しののんです。

Miura Takuma さんの「[becky-pin:02210] Re: プロファイル/メールボックス
を追加するには?」より…

>   hdialog := FindWindow( '#32770', '新規メールボックスの作成');

こことか、

>   hDialog := FindWindow( '#32770', '[]の設定');

ここは、BkNews では GetForegroundWindow だけでお手軽([≠|≒]手抜き)に片
づけていたような気が…… (^^;;;

▲▽《篠田 敦》                               ▽▲
▲▽ Private  mailto:shinonon@... ▽▲
▲▽ http://members.jcom.home.ne.jp/shinonon/ ▽▲

[becky-pin:02221] で、できた〜 (^^;)

[ | / ▼ | ]
2221
Subject:
[becky-pin:02221] で、できた〜 (^^;)
From:
Miura Takuma <mueller@...>
Date:
Tue, 28 May 2002 00:09:59 +0900
X-Mailer:
Becky! ver. 2.05 (beta3)
Message-Id:
<20020528000328.7BB2.MUELLER‐at‐csc.jp>
In-Reply-To:
2215
References:
2210 2215
shinononさんの<20020522110320.A7BB.SHINONON@jcom.home.ne.jp>から
>>ここは、BkNews では GetForegroundWindow だけでお手軽([≠|≒]手抜き)に片
>>づけていたような気が…… (^^;;;

Tie\tewさんの<20020522001847.76E3.TIETEW@raug.net>から
>>SendMessage(hdialog, WM_COMMAND, IDOK, 0);
>>だけでオッケー。


 うまいやり方を教えてもらって、振り分け条件の登録などは
 自動化できるようになりましたが、新規メールボックスの作成は
 なかなかに難航していました。

 今日なんとか、
 ・メールボックスの設定ウィンドウがまだ作成されていなければ、
  自分自身をPostMessageし直していったん終了する
 ことで実現できました。

 またいろいろ聞くことがあるかもしれません。
 ありがとうございました。
--

::===========================================================
:: 三浦 琢磨  <mailto:mueller@...>
:: PGP fingerprint: 42FC 4F53 2FB6 5810 1B1B 97A3 F166 2DE7
::===========================================================

Navigation

検索

[検索ヘルプ]

Maintener: Tietew <www.tietew.jp>
Powered by Ruby on Rails, Mongrel, PostgreSQL, and Hyper Estraier.
click here