请问DhcpNotifyConfigChange函数在VB中怎么声明和使用?

解决方案 »

  1.   

    把原型翻译一下就是了。'BOOL DhcpNotifyConfigChange(
    '    LPWSTR lpwszServerName, // 本地机器为NULL
    '    LPWSTR lpwszAdapterName, // 适配器名称
    '    BOOL bNewIpAddress, // TRUE表示更改IP
    '    DWORD dwIpIndex, // 指明第几个IP地址,如果只有该接口只有一个IP地址则为0
    '    DWORD dwIpAddress, // IP地址
    '    DWORD dwSubNetMask, // 子网掩码
    '    int nDhcpAction ); // 对DHCP的操作 0:不修改, 1:启用 DHCP,2:禁用 DHCPDeclare Function DHCPNotifyConfigChange(ByVal ServerName As String, ByVal AdapterName As String, ByVal bNewIPAddress As Boolean, ByVal dwIPIndex As Long, ByVal dwIPAddress As Long, ByVal dwSubNetMask As Long, ByVal nDHCPAction As Long) As Long
      

  2.   

    啊,错了。应该是
    Declare Function DHCPNotifyConfigChange Lib "dhcpcsvc.dll"(ByVal ServerName As String, ByVal AdapterName As String, ByVal bNewIPAddress As Boolean, ByVal dwIPIndex As Long, ByVal dwIPAddress As Long, ByVal dwSubNetMask As Long, ByVal nDHCPAction As Long) As Long
      

  3.   

    参数简单说明一下(个人理解,仅供参考)
    ServerName:服务器名,如果是本地机器,则为vbNullString
    AdapterName:适配器名,可以通过如下方法获得:
    在Windows2000中可以通过遍历 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\000n\ (n是从0开始编号的数字)所有接口, 在Windows NT中可以读取HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards中的信息
    bNewIPAddress:表示是否更改IP,True更改,False不更改
    dwIPIndex:表示更改哪一个IP地址(一个适配器可能捆绑多个IP地址),如果只有1个则为0。
    dwIPAddress:IP地址
    dwSubNetMask:子网掩码
    nDHCPAction:对DHCP的操作 0:不修改, 1:启用 DHCP,2:禁用 DHCP其中ServerName和AdapterName在原型中定义是LPWSTR,使用时注意。