zoukankan      html  css  js  c++  java
  • 关于delphi 修改 Ip地址的运用

    我虽然再也没有继续像大学那样没日没夜的写计算机代码了,前几天听见我的朋友说他的公司里面老是有ip冲突,他那边工程师说只要修改了ip地址就可以上网了,可是这个男生可笨了!居然换了好多IP都被人家给占用了,求我给他写个程序,免的IP换的头疼。
    那么开始吧!
    首先要利用InternetGetConnectedState函数,这个函数是反应你的机器成功连网的函数,返回的是true和false
    返回是true
    就成功了,不是就连网失败
    关于ip修改最好用上系统自己带的netsh命令
    那么我就把不才的程序代码贴上来了

    uses  
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  
    Dialogs,shellapi,wininet, StdCtrls, ExtCtrls;  
    type  
    TForm1 = class(TForm)  
        Timer1: TTimer;  
        Button1: TButton;  
        StaticText1: TStaticText;  
        Edit1: TEdit;  
        StaticText2: TStaticText;  
        StaticText3: TStaticText;  
        StaticText4: TStaticText;  
        Edit2: TEdit;  
        StaticText5: TStaticText;  
        procedure Button1Click(Sender: TObject);  
        procedure Timer1Timer(Sender: TObject);  
    private  
        { Private declarations }  
    public  
        { Public declarations }  
    end;  
    var  
    Form1: TForm1;  
    implementation  
    {$R *.dfm}  
    procedure Delay(MSecs:   Longint);  
    var  
    FirstTickCount,Now:Longint;  
    begin  
          FirstTickCount   :=   GetTickCount();  
          repeat  
              Application.ProcessMessages;  
              Now:=GetTickCount();  
          until (Now-FirstTickCount>=MSecs)or(Now<FirstTickCount);  
    end;  
    procedure TForm1.Button1Click(Sender: TObject);  
    var  
    a:string;  
    b:string;  
    c:integer;  
    d:string;  
    e:string;  
    rec:dword;  
    ask:boolean;  
    ProcessHandle,CMD1 : THandle;  
    ProcessID: DWORD;  
    begin  
    e:=' ';  
    a:='/k ';  
    for c:= strtoint(edit2.text) to 255 do  
    begin  
    cmd1:=GetWindowThreadProcessId(FindWindow('consolewindowclass',NIL), ProcessID);  
       if cmd1<>0 then  
        begin  
    ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessId);  
    TerminateProcess(ProcessHandle,4);  
        end  
        else  
    b:='192.168.13.'+inttostr(c);  
    statictext2.Caption :=b;  
    d:=a+' netsh interface ip set address'+e+'"'+edit1.Text+'"'+e+'static'+e+b+e+'255.255.255.0'+e+'192.168.13.1'+' 1';begin  
    ShellExecute(handle, 'open', pchar('cmd.exe'),pchar(d), nil, SW_show);  
        end;  
        ask:=InternetGetConnectedState(@rec,0);  
        if ask then  
          begin  
          break;  
          end  
          else  
          begin  
    Delay(25000);  
    cmd1:=GetWindowThreadProcessId(FindWindow('consolewindowclass',NIL), ProcessID);  
          IF cmd1<>0 THEN  
             begin  
         ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessId);  
         TerminateProcess(ProcessHandle,4);  
              end  
          end;  
    end;  
    end;  
    procedure TForm1.Timer1Timer(Sender: TObject);  
    var  
    rec:dword;  
    ask:boolean;  
    begin  
    ask:=InternetGetConnectedState(@rec,0);  
    if ask then  
    begin  
    StaticText1.Caption:='网络连接成功';   button1.Enabled:=false;  
    end  
    else  
    begin  
    StaticText1.Caption:= '网络连接失败';   button1.Enabled:=true;  
    end;  
    end;  
    end.  
  • 相关阅读:
    iOS 页面之间的转场动画控制器间的转换
    C C语言中关键词,以及知识点复习
    iOS Swift基础知识代码
    LeetCode-Kth Smallest Element in a Sorted Matrix
    LeetCode-Design Phone Directory
    LeetCode-Longest Increasing Path in a Matrix
    LeetCode-Pathcing Array
    LeetCode-Wiggle Sort
    LeetCode-Odd Even Linked List
    LeetCode-Verify Preorder Serialization of a Binary Tree
  • 原文地址:https://www.cnblogs.com/railgunman/p/1889732.html
Copyright © 2011-2022 走看看