他のアプリのListViewのアイテムを並べ替えるには?


MATOX  2005-11-29 07:12:26  No: 18929  IP: [192.*.*.*]

他のプロセスが持つListView(Report型)のアイテムを並べ替える方法はあるのでしょうか?
教えて下さい。

編集    削除
どやさ  2005-12-03 03:14:53  No: 18930  IP: [192.*.*.*]

無理っぽいけど

根性出せば可能かも・・・・

実行されている他のプログラムがロードされているメモリから
プログラムを抜いてきます。
次に、逆アセンブルして、リストボックスのデータが格納されている
メモリの開始位置をとってくるアルゴリズムをもったプログラムを
作成します(ちなみに、私には作れませんが・・・)
メモリを直接変更できれば成功です。

他のアプリケーションが自作のものであればもっと簡単ですけど

編集    削除
にしの  2005-12-03 05:28:44  No: 18931  IP: [192.*.*.*]

ListViewのハンドルがわかれば、ListView_SortItemsを使ってソートできます。
ここでソート関数に渡されるのはlParamなので、ListView_GetItemを使って判別する必要があります。

編集    削除
にしの  2005-12-03 06:14:25  No: 18932  IP: [192.*.*.*]

追記。
他プロセスをいじるので、ListView_GetItemで渡すLVITEMは、VirtualAllocExなどで取得しないとダメです。
試していませんが、もしかしたら呼び出す関数もそっちにコピーする必要があるかも。

編集    削除