//这是函数声明
function RasGetEntryDialParams;      external 'rasapi32.dll' name 'RasGetEntryDialParamsA';
function RasSetEntryDialParams;      external 'rasapi32.dll' name 'RasSetEntryDialParamsA';

解决方案 »

  1.   

    FillChar(dialparams, SizeOf(TRasDialParams), 0);
      with dialparams do
        begin
        dwSize := Sizeof(TRasDialParams);
        StrPCopy(szEntryName, lstEntries.Items[lstEntries.ItemIndex]);
        StrPCopy(szUserName, txtUserName.Text);
        StrPCopy(szPassword, txtPassword.Text);
        StrPCopy(szPhoneNumber,EdtTel.Text);//通过拨号即可实现,对拨号号码的自动改变
        // You can override phone number here...
        // StrPCopy(szPhoneNumber, 'xxxxxx');
        end;
        r := RasDial(nil, nil, dialparams, 0, nil, hRas);
        if r = 0 then
        //拨号成功
        else
        //拨号失败
      

  2.   


    以前做过类似的
    不过用的是apro的一套控件
      

  3.   

    naughtyboy(重归起跑线) 
    apro这套控件使用起来很方便么?稳定性怎么样啊?
      

  4.   

    1、如何在没有向导的情况下建立拨号连接。procedure TfrmDail.btnCreateEntryClick(Sender: TObject);
    begin
      if RasCreatePhonebookEntry(Handle, nil) = 0 then
        EnumRASEntries()
          //btnGetEntries.Click
      else
        ShowMessage('RasCreatePhonebookEntry failed.');
    end;procedure TfrmDail.EnumRASEntries();
    var
      bufsize: Longint;
      numEntries: Longint;
      entries, p: LPRasEntryName;
      x: Integer;
      res: Integer;
    begin
      btnEditEntry.Enabled := False;
      //  btnGetParams.Enabled := False;
      txtUserName.Text := '';
      txtPassword.Text := '';
      lstEntries.Items.Clear;
      entries := AllocMem(SizeOf(TRasEntryName));
      entries^.dwSize := SizeOf(TRasEntryName);
      bufsize := SizeOf(TRasEntryName);
      res := RasEnumEntries(nil, nil, entries, bufsize, numEntries);
      if res = ERROR_BUFFER_TOO_SMALL then
      begin
        ReallocMem(entries, bufsize);
        FillChar(entries^, bufsize, 0);
        entries^.dwSize := SizeOf(TRasEntryName);
        res := RasEnumEntries(nil, nil, entries, bufsize, numEntries);
      end;
      if res = 0 then
      begin
        if numEntries > 0 then
        begin
          p := entries;
          for x := 0 to numEntries - 1 do
          begin
            lstEntries.Items.Add(p^.szEntryName);
            Inc(p);
          end;
          lstEntries.ItemIndex := 0;
          lstEntriesClick(lstEntries);
          btnEditEntry.Enabled := True;
          //     btnGetEntryProperties.Enabled := True;
         //      btnRenameEntry.Enabled := True;
         //      btnDeleteEntry.Enabled := True;
            //   btnGetParams.Enabled := True;
        end;
      end
      else
        ShowMessage('RasEnumEntries failed.');
      FreeMem(entries);
    end;