您的位置:程序门 -> delphi -> windows sdk/api



在delphi里怎么用函数dhcpnotifyconfigchange?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


在delphi里怎么用函数dhcpnotifyconfigchange?[已结贴,结贴人:robot_zyt]
发表于:2007-05-15 15:15:14 楼主
我需要修改本地dhcp配置和ip地址,然后使其生效,不知道在delphi里怎么用函数dhcpnotifyconfigchange?   或者怎么实现重启网卡?
发表于:2007-05-15 15:42:111楼 得分:15
var    
            dhcpdll:thandle;    
            dhcpd:tdhcpnotifyproc;    
     
    begin    
            try    
                    dhcpdll:=loadlibrary( 'dhcpcsvc.dll ');    
                    if           dhcpdll       <>       0       then    
                    begin    
                            @dhcpd:=getprocaddress(dhcpdll,       pchar( 'dhcpnotifyconfigchange '));    
                            if       @dhcpd       <>       nil       then    
                                        dhcpd(nil,pchar( '{01082454-e36a-48c4-a59f-35d6cef88484} '),true,0,inet_addr(( '192.168.0.240 ')),inet_addr(( '255.255.255.0 ')),0);    
                    end;    
            finally    
                    freelibrary(dhcpdll);    
            end;      
end;
发表于:2007-05-15 18:25:022楼 得分:15
帮月亮补充一下,,tdhcpnotifyproc的函数类型的定义   :)  

unit       unit1;      
       
    interface      
       
    uses      
            windows,       messages,       sysutils,       variants,       classes,       graphics,       controls,       forms,      
            dialogs,       stdctrls,winsock;      
       
    type      
            tform1       =       class(tform)      
                    procedure       button1click(sender:       tobject);      
            private      
                    {       private       declarations       }      
            public      
                    {       public       declarations       }      
            end;      
            type      
                    tdhcpnotifyproc       =       function(jqname,netname:pchar;zxing:boolean;nindex,netip,netmask:dword;ss:integer):boolean;      
       
    var      
            form1:       tform1;      
       
    implementation      
发表于:2007-05-16 09:31:203楼 得分:0
得到用两位的提示后,如下编码,但在函数dhcpd后,系统的enabledhcp和ip都没有变化(测试时机器enabledhcp为1,   我用ipconfig   /release释放了ip),   并且在freelibrary跳出异常,请两位帮我看看!

//声明
    tdhcpnotifyproc   =   function(jqname,netname:pchar;zxing:boolean;nindex,netip,netmask:dword;ss:integer):boolean;

procedure   dhcpnotifyconfigchange(sadaptername,   sipaddr,   ssubnetmask:string);
var
    dhcpdll:thandle;
    dhcpd:tdhcpnotifyproc;
begin
    try
        dhcpdll:=loadlibrary( 'dhcpcsvc.dll ');
        if   dhcpdll   <>   0   then
        begin
            @dhcpd:=getprocaddress(dhcpdll,   pchar( 'dhcpnotifyconfigchange '));
            //dhcpd(nil,pchar(sadaptername),false,0,0,0,0);
            if   @dhcpd   <>   nil   then
                dhcpd(nil,pchar(sadaptername),true,0,inet_addr(pchar(sipaddr)),inet_addr(pchar(ssubnetmask)),2);
        end;
    finally
        freelibrary(dhcpdll);
    end;
end;

//调用
dhcpnotifyconfigchange(sadaptername,   '192.168.8.171 ',   '255.255.255.0 ');




快速检索

最新资讯
热门点击