CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

如何编程更改IP?

楼主pharaoh()2002-06-18 20:45:33 在 Delphi / VCL组件开发及应用 提问

我有一台电脑需要在两个固定的IP切换,如何编程实现,或者有Windows命令可以实现? 问题点数:50、回复次数:5Top

1 楼pacers()回复于 2002-06-19 20:59:07 得分 0

I   have   no   idear.Top

2 楼benny87(benny)回复于 2002-06-19 20:59:08 得分 0

对  
  这也是我一个未解决的问题  
  gzTop

3 楼luyuhai(大海)回复于 2002-06-19 21:17:00 得分 0

gz   tooTop

4 楼cg1120(代码最优化-§惟坚韧者始能遂其志§)回复于 2002-06-19 21:25:34 得分 0

可以用一条shell命令:  
  netsh   interface   ip   set   address   local   static   192.168.0.1   255.255.255.0   192.168.0.10   1Top

5 楼naughtyboy(重归起跑线)回复于 2002-06-30 00:28:29 得分 50

我这里有一段程序  
  unit   Unit1;    
   
  interface    
   
  uses    
      Windows,   Messages,   Classes,   Forms,   Controls,   StdCtrls,   ExtCtrls;    
   
  type    
      TForm1   =   class(TForm)    
          IPAddress:   TBevel;    
          SetIP:   TButton;    
          ClearIP:   TButton;    
          procedure   FormCreate(Sender:   TObject);    
          procedure   SetIPClick(Sender:   TObject);    
          procedure   ClearIPClick(Sender:   TObject);    
      private    
          FIPAddress:   Longint;    
          HIPAddress:   HWND;    
          PrevWndProc:   TWndMethod;    
          procedure   NewWindowProc(var   Message:   TMessage);    
      public    
      end;    
   
  var    
      Form1:   TForm1;    
   
  implementation    
   
  {$R   *.dfm}    
   
  uses    
      CommCtrl;    
   
  const    
      IP_ADDRESS_ID:   Longword   =   $0100;    
   
  procedure   TForm1.FormCreate(Sender:   TObject);    
  var    
      lpInitCtrls:   TInitCommonControlsEx;    
  begin    
      lpInitCtrls.dwSize   :=   SizeOf(TInitCommonControlsEx);    
      lpInitCtrls.dwICC     :=   ICC_INTERNET_CLASSES;    
      if   InitCommonControlsEx(lpInitCtrls)   then      
      begin    
          PrevWndProc   :=   WindowProc;    
          WindowProc     :=   NewWindowProc;    
   
          HIPAddress   :=   CreateWindowEx(WS_EX_LEFT,   WC_IPADDRESS,   nil,    
              WS_CHILD   +   WS_VISIBLE   +   WS_BORDER   +   WS_TABSTOP,    
              IPAddress.Left,   IPAddress.Top,   IPAddress.Width,   IPAddress.Height,    
              Handle,   IP_ADDRESS_ID,   HInstance,   nil);    
          SendMessage(HIPAddress,   IPM_SETFOCUS,   0,   0);    
      end;    
  end;    
   
  procedure   TForm1.NewWindowProc(var   Message:   TMessage);    
  var    
      nField:   longint;    
  begin    
      case   Message.Msg   of    
          WM_NOTIFY:      
              begin    
                  if   PNMHDR(Ptr(Message.lParam)).idFrom   =   IP_ADDRESS_ID   then      
                  begin    
                      case   PNMIPAddress(ptr(Message.lParam)).hdr.code   of    
                          IPN_FIELDCHANGED:      
                              begin    
                                  if   SendMessage(HIPAddress,   IPM_ISBLANK,   0,   0)   =   0   then    
                                      SendMessage(HIPAddress,   IPM_GETADDRESS,   0,   lParam(LPDWORD(@FIPAddress)));    
                              end;    
                      end;    
                  end;    
              end;    
          WM_COMMAND:      
              begin    
                  if   Message.WParamLo   =   IP_ADDRESS_ID   then    
                      case   Message.WParamHi   of    
                          EN_SETFOCUS:      
                              begin    
                                  nField   :=   SendMessage(HIPAddress,   IPM_GETADDRESS,   0,    
                                      lParam(LPDWORD(@FIPAddress)));    
                                  if   nField   =   4   then   nField   :=   0;    
                                  SendMessage(HIPAddress,   IPM_SETFOCUS,   wParam(nField),   0);    
                              end;    
                          EN_KILLFOCUS:      
                              begin    
                                  if   SendMessage(HIPAddress,   IPM_ISBLANK,   0,   0)   =   0   then    
                                      SendMessage(HIPAddress,   IPM_GETADDRESS,   0,   lParam(LPDWORD(@FIPAddress)));    
                              end;    
                          EN_CHANGE:      
                              begin    
                              end;    
                      end;    
              end;    
      end;    
      if   Assigned(PrevWndProc)   then   PrevWndproc(Message);    
  end;    
   
  procedure   TForm1.SetIPClick(Sender:   TObject);    
  begin    
      FIPAddress   :=   MAKEIPADDRESS(127,   0,   0,   1);    
      SendMessage(HIPAddress,   IPM_SETADDRESS,   0,   lParam(DWORD(FIPAddress)));    
  end;    
   
  procedure   TForm1.ClearIPClick(Sender:   TObject);    
  begin    
      SendMessage(HIPAddress,   IPM_CLEARADDRESS,   0,   0);    
  end;    
   
  end.    
  Top

相关问题

  • 如何编程更改Win2000本机IP地址?
  • [请教]如何编程实现2000下不重启更改IP?
  • 如何通过C#编程,更改当前用户的IP地址
  • 更改并激活IP地址的编程方法?急急急!
  • 如何编程禁止IP?特急!
  • 高分救助,如何编程更改IIS中站点中的网站标识中的IP地址跟端口号那些
  • tcp/ip 编程
  • TCP/IP编程
  • 如何编程实现对可执行文件的图标更改?
  • 如何编程实现WIN 2000 用户口令的更改!急呀!

关键词

  • ip
  • lpinitctrls
  • tform
  • tobject
  • procedure
  • sender
  • var

得分解答快速导航

  • 帖主:pharaoh
  • naughtyboy

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo