ネットワークの設定をVBで設定したいの
ですが、どなたかやり方をご存じありま
せんか?(コンパネから設定できるので、
APIを使えばできるのでは?っと思ってい
るのですが。。。)
1.やりたいこと
(1)ネットワークアダプタを選択する
(2)選択したネットワークアダプタの
メディアタイプを切り換える(下記3つ)
a.HardWare Default
b.100Mb Full Duplex
c.100Mb Full Duplex
2.使用環境
(1)OS W2k SP4/XP SP1
(2)言語 VB6 SP5
レジストリを書き換えることになります。
レジストリエディターで「値」にチェックを入れ
"DuplexMode"と検索してみて下さい。それがDuplexModeの設定です。
実際にコンパネから変更してみて確認してみるといいでしょう。
設定の値は、その下のサブキーの
Ndi\params\DuplexMode\enumの値を設定します。
設定は
1、Auto Mode
2、10 Half Mode
3、10 Full Mode
4、100 Half Mode
5、100 Full Mode
等となります。
ネットワークカードが複数枚有る場合は、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards
の下の番号のサブキーの中で、ServiceNameを取得して、最初に記述したDuplexModeと同じ
キーの中のNetCfgInstanceIdがServiceNameが同じ物がそのカードの設定となります。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200404/04040014.txt
でIPアドレスの設定方法を書きましたが、書き込み方法などはこれを参考にしてください。
ねろさんへ
レス有り難うございます。
レジストリを使うとうまく出来そうですネ(^^)
早速やってみます。
ねろさんへ
コバです。 何とかもう一歩のところまでこぎ着けました。
もう少し助言を頂きたい。
すったもんだした結果、VBでDuplexModeの変更が出来ました。
VBで変更した結果が、コンパネにも反映されました。
しかし、ネットワークカードには反映されていませんでした。
レジストリが変わっただけで、接続状態をモニタした結果、
ネットワークカードは、VBで操作する前のモードのままでした。
コンパネでDuplexModeを変更後にOKボタンを押しますが、この
OKボタンを押したときに処理している内容を実装しないといけない
ようです。 どのAPIを使えばよいかご存じですか?
>ネットワークカードは、VBで操作する前のモードのままでした。
PCを再起動しないと反映されないのでは?
>PCを再起動しないと反映されないのでは?
確かにWin98以前だとそうですが、対象としているW2Kや
XPはコンパネで設定変更後、OKボタンをクリックすると
LANドライバに即反映されるので。。。。。
設定変更した内容でLANドライバをリフレッシュする
APIがあるのでは。。。。っと思っています。
C#でLAN接続の有効・無効化ソフトがあったので、それと
組み合わせたらできました。
いろいろとお世話になりました。