北東崎鳳凰−記録帳
DiaryINDEXpastwill


2006年04月11日(火) ようやくNETSTAT -B代替程度。

うーむ・・・
ここまで梃子摺るとは、正直思っていませんでしたよ。
まぁ・・・行き当たりばったりで
CとVBを行き来しながら、情報の質が確かでない
ネット検索に頼ったりでは
進行の質もよろしくないでしょうがね。

結局出来たのは、
OSバージョン依存の
netstat -b代替ルーチン
くらいのものですな、今のところは。

http://ruffnex.oc.to/kenji/text/dll_inj/process.cpp
このソースが
プロセスID+アプリ名を入手する
最も簡素で分かりやすい例。



一方、VB6でも確認。
vbCrLf
テキスト改行に入れる定数。
むー、こんな基礎知識すら忘れていたので
あちこちのソースに当たる始末。これだけでも
ちと時間食ったり。

http://nienie.com/~masapico/api_Process32Next.html
このページに7割ほど感謝。
TH32CS_SNAPHEAPLIST = 1
TH32CS_SNAPPROCESS = 2
TH32CS_SNAPTHREAD = 4
TH32CS_SNAPMODULE = 8
辺りの数値までここに載っていなかったので
こいつらはまた検索して探すことに。


http://homepage2.nifty.com/spw/tips/GetTcpTable2.html
TCP状態の一覧取得(プロセスIDの取得を含むバージョン)

すぐに使えるという意味では
助かった例ですな。
BC++B5で確認 ってか このソースは
BC++B5用。

VBは5より6が良いですが
BC++Bは5のみ。BC++B6は知らん上に、余り評判よろしくないようで。
VS .NET系は、かなり構文が変わっているので
まだ使う気無し。


あとは、
プロセス+アプリ(OSバージョン依存は無し)
TCP系+プロセス(XP以降で無いと使えないらしい)
にて、プロセス一致するのを比較抽出して
回線切断へと向かいます。


しかし・・・バージョン依存は出来たら無くしたかったのですが・・・
WIN98系でも、回線を扱えることは事実ですし
まぁ 今の私にはそこまでの力量は無いということで
今のところは、WinXP依存でもかまわないから
とっととプログラムを仕上げることですかね。

にしても・・・
EM_GETLINEやGetChatなど
RICHEDIT系の操作もバージョンによって相違が有ったりと・・・
厄介ですな。
バージョン依存を無くそうとすると、とんでもなく複雑な
ソースリストを組み上げなければならなくなりそうですし・・・
ま、あとあと。今は考えるだけ野暮。


http://codezine.jp/a/article.aspx?aid=101
ここのTDIとか言うのを使おうかと思っても
TDI.SYSはWIN98系には存在しません。
それに、DeviceIoControlってAPIは
デバドラ開発系の話になってきます・・・
WinDDKを別に揃える必要があります。
TDI.Hで検索すればソースは当たりますが
なんかそこから出てくる魑魅魍魎どもは
手に負えないので、今は一旦諦めます。



・・・、BC++B5であれこれやってみるものの
何も応答せず、失敗なのかな。
Connectかましても、0のまま(未接続)
Winsockコントロールを取り込んで、そこで
色々と試していますが・・・
ローカルIP:Port
リモートIP:Port
exe名
プロセスID
ここまで入手出来ておいて、まだ
干渉・切断に及びません。

うーん・・・。もうちょっとWinsockの基礎部分から
やり直してみる必要あるのかな?

とにかく、疲れました・・・。


北東崎鳳凰 |MAILHomePage