自アプリケーションに対して、他のアプリケーション(例えばMSInfo.exe)のListView(?)上にあるシステム情報を自アプリケーションからの操作で文字列として取り込むには、どうすればよいのでしょうか?
大事なことを忘れてました。私が使っているPCは複数台あって、Windows98, Windows2000, Windows XPの3種類のシステムがあります。
ListItem.Text の部分だけで良ければ、oleacc.dllの
「IAccessibleインターフェイス」で拾う事ができます。
strText = objIAccessible.accName(lngLineNumber)
しかし、ListItem.SubItems(n) の値も拾いたい場合は、もう少し複雑です。
この場合は、LVM_GETITEM メッセージを使って取得する事になるのですが、
別EXE間でデータ交換を行う必要があるため、VirtualAllocEx APIで
共有メモリを確保して、そこに対してRead(Write)ProcessMemory APIで
読み書きを行う必要が生じます。
# なお、Win98ではVirtualAllocExが利用できませんので、かわりに
# CreateFileMapping, MapViewOfFileを使うようにしてみてください。
魔界の仮面弁士様、早速のご教授、ほんとに有り難う御座います。このページでの2回目の質問にこんなに早く答えが返ってくるとは予想外でした。
さっそく試してみます。
魔界の仮面弁士様、有り難う御座いました。私はVBをいじりはじめて1年たらずの若輩です。何かと話の通じにくい点も多々あると思いますが、今後とも宜しくお願い申し上げます。
ツイート | ![]() |