- PR -

タスクバーのタスクボタンの情報を取得したい

投稿者投稿内容
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2005-10-11 22:46
さすがに持ってないから確かめられないよごめんねー、ですますのもあれですので、Win98で試してみました。
//Win98だとVirtualAllocExの代わりにCreateFileMapping/MapViewOfFileを使うことになりますが。
確かに、タスクバーボタンの場合に限ってTCM_GETITEMのTCIF_TEXTがスルーされてしまうようですね。
ちょっと考えましたが、このアプローチはどうにも広がりません。

そこで、ざっくり方針を転換して、TCIF_PARAMを使用するのはどうでしょうか。
これを使用した場合、ReadProcessMemoryで取得したTCITEMのlParamに、そのボタンが指すアプリケーションのメインウィンドウのハンドルが格納されます。
それに対してEM_GETTEXTを投げることで、擬似的にテキストを取得する、と。
uni
会議室デビュー日: 2005/09/30
投稿数: 11
投稿日時: 2005-10-12 10:03
Hongliangさん、わざわざ試して頂いてありがとうございました。
お手数かけてすみませんでした。

おっしゃられたように、EM_GETTEXTを投げることでテキストを取得することができました!
TCIF_TEXTは、悔しいですがあきらめます。。。
長々とお付き合いいただいてありがとうございました。
Marshal.AllocCoTaskMemなど、かなり勉強になりました。

最終目標はボタンの並べ替えですので、これからそちらに取り掛かろうと思います。
(ちゃんとできるか不安になってしまいましたが・・・)
またなにかありましたら、よろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)