はじめまして、日用PGと申します。
現在、MFCを使用しノートPC用としてネットワーク設定1・2を切り替えるツールを作成してい
ます。(Win2k専用)
切り替え対象はIP デフォルトゲートウェイ サブネットマスク DSNです。
(192...**)←→(17*...***)
RegOpenKeyExとRegSetValueExを使用し、レジストリへの登録まではうまくいっているのです
が、
設定内容が再起動するまで反映されないのです。(win2kなどのネットワークプロパティでの設
定は即時反映されていたはず。)
再起動せずに、即時反映する手は何かご存知でしょうか?。
以上よろしくお願いします。
開発環境
VC6.0 Windows2000sp4
レジストリを直接操作しないで、IP Helper APIs を使いましょう。
http://msdn.microsoft.com/library/en-us/iphlp/iphlp/ip_helper_start_page.asp
Windows2000でも即時反映されていなかったような気がするのですが、
記憶違いだったでしょうか?
一度、設定を無効にして有効にしなおさないと駄目だったような。
うろ覚えで申し訳ないですけれど、
OSをXPに切り替えてしまったので確認できないです。
ああっ、ひどりさんとニアミス。
しかも私のレスは無意味(--;
渋木宏明(ひどり)さん、PATIO さん、
ありがとうございます。
IP Helper APIs ですか、レジストリを直でいじるものだとばかり思っていました・・・。
これからそちらのほうを調べてみます。
ありがとうございます。
経過報告です。
現在、GetIpAddrTableを使ってipとサブネットマスクを取得するところからつくり直していま
す。
お世話になっています。 日用PGです。
再度質問させてください。
現在、GetAdaptersInfoを使用し
IP
サブネットマスク
デフォルトゲートウェイを取得し
GetNetworkParamsで
DNSを取得するようにしました。
問題は書き換えなのですが、AddIPAddressではIPとサブネットマスクのみの書き換えとなりそ
うなのですが、
その他の値を書き換える関数は有るのでしょうか?
以上よろしくお願いいたします。
>その他の値を書き換える関数は有るのでしょうか?
あるみたいですけど、変更系は全部「バラ」みたいです。
具体的には何を変更したいでしょうか?
デフォルトゲートウェイなんかは、IpForward 系の API で変更するみたいです。
現在考えて(必要と思う)物は
IPアドレスとサブネットマスク
デフォルトゲートウェイ です。
DNSについては、はじめに複数登録しておく方法もあるので優先度は落ちます。
WINSについては、現在の環境では片方のネットワークでは使用していないため、重要ではあり
ません。
PGとはまったく関係ないですが、例えば会社の環境と自宅の環境とか言う場合ですと、
内蔵NICは使わずに自宅用と会社用の2枚のNIC(メーカーを別にする)を用意する、
という手があります。
差してあるカード毎に設定が保存されるので、なあんも考えずに使えます。
会社でDHCP設定されている場合なんか有効だと思います。
更にカードが差さっていない時は、ネットワークがないんだ!とノートは
思ってくれます。
だからNIC内蔵の最近のノートって無駄だなあと思っています。
IP アドレス/サブネットマスクは AddIPAddress() で追加できますよね?
デフォルトゲートウェイに関しては前述の通り、xxxIpForwardEntry() でできそうに思
います。
DNS/WINS の変更は見当たらないですね。。。 ;-p