当DELPHI程序检测到本机为自动获取IP地址时,将自动获取到的IP地址,子网掩码,网关及DNS以手工指派方式填写到对应参数.
需要考虑到:
一,多网卡
二,不同OS(XP,2003)感觉挺简单的问题,找来找去找不到方法.几度疯掉.
请高手指点,附原码最好.
需要考虑到:
一,多网卡
二,不同OS(XP,2003)感觉挺简单的问题,找来找去找不到方法.几度疯掉.
请高手指点,附原码最好.
解决方案 »
- webbrowser没有onReSize事件,怎么响应HTML代码中对改变窗口的大小啊?
- 求产生一个由12个随机0~9自然数组成的字符串的算法、
- 初学delphi,如何点击RadioGroup上的选项,Label上显示出来
- ★★★马甲成功升星,散分,今天下班前结贴★★★
- 那里可以得到报表总的页面数?
- dbgrid中,怎么控制某一列只允许输入数值类型,而不能输入其它的类型!
- 急问:关于delphi调用外部动态链接库的问题。
- 请教各位朋友
- 关于midas.dll
- 你知道哪里有 WebSphere 的好书Down吗?
- SendMessage鼠标的命令好使。。。键盘的不好用。。。求解。。。
- 采用http协议post方式上报XML文件到一个url
如果是的话,就将本机的IP,子网,网关等信息分配给各个参数...
是吧?
//修改IP开始
if regRootKey.OpenKey('\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\' + CardList.Strings[cbb1.ItemIndex], True)
then begin
if CheckBox1.Checked // 判断是否启用DHCP
then begin
regRootKey.WriteInteger('EnableDHCP',1);
regRootKey.WriteString('NameServer','');
WriteIp(regRootKey.CurrentKey, 'IPAddress', '0.0.0.0');
WriteIp(regRootKey.CurrentKey, 'SubNetMask','0.0.0.0');
WriteIp(regRootKey.CurrentKey, 'DefaultGateway','');
end
else begin
regRootKey.WriteInteger('EnableDHCP',0);
regRootKey.WriteString('NameServer', Trim(Combobox1.Text));
WriteIp(regRootKey.CurrentKey,'IPAddress',Trim(Edit2.Text));
WriteIp(regRootKey.CurrentKey, 'DefaultGateway', Trim(Edit4.Text));
WriteIp(regRootKey.CurrentKey, 'SubNetMask', Trim(Edit3.Text));
WriteIp(regRootKey.CurrentKey, 'DefaultGateway', Trim(Edit4.Text));
end;
end;
IP Address、Subnet Mask 、Default Gateway .... 来获取你要的东西。 哈哈。
if Mprapidll <32 then
Exit;
MprConfigGetFriendlyName := GetProcAddress(Mprapidll,'MprConfigGetFriendlyName');
MprConfigServerConnect := GetProcAddress(Mprapidll,'MprConfigServerConnect');
lpwsServerName := '';
dwRet := MprConfigServerConnect(PWideChar(lpwsServerName),@hMprConfig); try
while (pAdapter <> nil) do
begin
i := i+1;
begin
// cbbNetName.Items.Add(pAdapter.Description);
NetInformation[i-1].Description := pAdapter.Description;//网卡描述
NetInformation[i-1].IpAddress := StrPas(pAdapter.IPAddressList.IpAddress);//IP地址
NetInformation[i-1].IpMask := StrPas(pAdapter.IPAddressList.IpMask);//网关
while (pAdapter.IPAddressList.Next <> nil) do
begin
pAdapter.IPAddressList := pAdapter.IPAddressList.next^;
end;
str := IntToStr(pAdapter.Address[1]);
end;
//获取本地连接名称
//Wszfriendname := GetWideString(string(szFriendName));
AdapterName := pAdapter.AdapterName;
WAdapterName := AdapterName;
PWAdapterName := PWideChar(WAdapterName);
dwRet := MprConfigGetFriendlyName(hMprConfig,PWAdapterName,@FriendName[0],500);
Wszfriendname := FriendName;
szFriendName := Wszfriendname;
NetInformation[i-1].Name := szFriendName;//本地连接名 pAdapter := pAdapter.Next;
end;
FreeMemory(pAdapterInfo) ;
pAdapter := nil;
except
i := 0;
end;
BufLen := SizeOf(TIP_ADAPTER_INFO);
pAdapter := nil;
pAdapterInfo := GetMemory(SizeOf(TIP_ADAPTER_INFO)) ;
if GetAdaptersInfo(pAdapterInfo,@BufLen)= ERROR_BUFFER_OVERFLOW then
begin
FreeMemory(pAdapterInfo) ;
pAdapterInfo := GetMemory(BufLen) ;
GetAdaptersInfo(pAdapterInfo,@BufLen);
end; pAdapter := pAdapterInfo;