外部アプリからの情報取得についてNo.06398
さん 20/03/14 10:53
 
 こんにちは、お世話になります。

 外部のアプリからSendMessage等でメール一覧のスレッド関連の情報を取得したい
のですが、何か方法はありますでしょうか?

 1.メール一覧がスレッド表示かそうでないか(「TKInfo.dll」の「IsThreadVie
w」関数に相当する情報)
 2.スレッドの中のどのレベルにあるか(「TKInfo.dll」の「GetThreadLevel」関
数に相当する情報)
 3.現在選択されているメールの子メールの数(「TKInfo.dll」の「GetThreadChil
dCount」関数に相当する情報)
 4.スレッドが折りたたまれているかどうか(「TKInfo.dll」の「GetThreadCollap
se」関数に相当する情報)

 「TKInfo.dll」が利用できれば一番楽なんですが、諸事情で利用できないので、何
か方法があれば、教えていただけると幸いです。
 難しいという場合は、それでも結構です。

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

[ ]
RE:06398 外部アプリからの情報取得についNo.06400
秀まるお2 さん 20/03/14 12:19
 
 tkinfo.dll呼び出しは秀丸メールのプロセス内でないとうまくいかないです。

 そもそも的に、プロセスをまたがって文字列を受け渡しするには共有メモリを使う
などしないとダメなので、無理があります。

 やるとしたら、共有メモリを通じて他のプロセスに情報伝達するような特別なdll
を自作した上で、秀丸メールのマクロからtkinfo.dll呼び出し&プロセス間通信dll
を呼び出してやるってことにして、別プロセスからはマクロ実行のWM_COMMANDをPost
して待機する、みたいな方式にするしか無いんじゃないかと思います。

[ ]
RE:06400 外部アプリからの情報取得についNo.06402
さん 20/03/14 13:50
 
 お世話になります。

 やはり難しいですよね。

 今回取得しようとしてるのは数値なので、メール一覧の個数取得のように

ret = SendMessage(handle, LB_GETCOUNT, 0, 0)

みたいな感じで取得できないかと思ったんですが。
 とりあえず、できないということで了解しました。
 ありがとうございました。

 それでは。

[ ]
RE:06402 外部アプリからの情報取得についNo.06407
秀まるお2 さん 20/03/16 08:39
 
 数値1つだけなら、共有メモリは不要ではあります。

 別プロセスからマクロ実行のコマンドをPostして、それで実行されたマクロから、
例えばご自身のウィンドウをクラス名か何かで検索して結果をPostしてって風にすれ
ば実現できるかなぁと思います。

 どっちにしても秀丸メールのプロセス内(というか、秀丸メール本体ウィンドウと
同一スレッド内)で実行しないとダメかと思います。

[ ]
RE:06407 外部アプリからの情報取得についNo.06417
さん 20/03/16 21:16
 
 お世話になります。

 うーん、なかなかに難しそうです。
 とりあえず、あきらめようと思います。
 ありがとうございました。

 以上、今後ともよろしくお願いいたします。

[ ]