我想要根据手机的Modem口创建一个拨号连接,要设置拨号号码,用户名,密码?
请高手指点。谢谢!

解决方案 »

  1.   

    这个用Windows的创建拨号链接不可以吗?
      

  2.   

    在RasApi中有这个方法:
    function  RasCreatePhonebookEntryA(  hwnd  :  THandle;lpszPhonebook:  pchar  )  :  DWORD
    可以调用Windows创建拨号连接, 但是我不想提示这个步骤,我在程序里面直接创建一个拨号连接,请大侠指点!有没有相关的方法或者控件?拜谢!
      

  3.   

    用RasCreatePhonebookEntryA查看一下注册表修改了哪些。
      

  4.   

    这个方法不是调用windows的新建拨号连接吗?
      

  5.   

    用: RasSetEntryPropertiesA,RasSetCredentialsA
      

  6.   

    RasApi,我最近正在研究所.不过,参数太多,我是下载了一个控件在看.需要源码不,我还没有完全看懂需要留下email
      

  7.   

    谢谢各位的回答,自己解决了。
    解决方法:
    使用RasSetEntryProperties: function (lpszPhonebook: PChar; lpszEntry: PChar;
      lpRasEntry: PRasEntry; dwEntryInfoSize: DWORD;
      lpbDeviceInfo: Pointer; lpdwDeviceInfoSize: DWORD): DWORD; stdcall;
    方法;
    代码:procedure TForm1.btnCreateClick(Sender: TObject);
    var
      dwResult, Size: Integer;
      rasEntry: TRasEntry;
      Buffer: array[0..255] of Byte;
      ErrorInfo: array[0..100] of Char;
    begin
      Size := SizeOf(TRasEntry);
      FillChar(RasEntry, SizeOf(TRasEntry), 0);
      with RasEntry do
      begin
        dwSize := SizeOf(TRasEntry);
        dwfOptions := RASEO_PreviewUserPw + RASEO_ShowDialingProgress + RASEO_ModemLights;
        strCopy(szDeviceType, 'Modem');
        strCopy(szDeviceName, CSDeviceName);
        strCopy(szLocalPhoneNumber, CSDialNumber);
      end;
      //创建拨号连接
      dwResult := RasSetEntryProperties(nil, CSDialName, @rasEntry, Size, @Buffer[0], 256);
      if dwResult <> 0 then    //创建拨号连接失败
      begin
        RasGetErrorString(dwResult, ErrorInfo, 100);
        mmo1.Lines.Add(ErrorInfo);
      end
      else
        mmo1.Lines.Add('创建拨号连接成功');
    end;这个方法有点小缺点:不能传递用户名密码创建拨号连接,需要用这个方法再修改拨号连接的用户名密码:
    RasSetEntryDialParams: function (lpszPhonebook: PChar;
    lprasdialparams: PRasDialParams; fRemovePassword: BOOL): DWORD; stdcall;
    大家有没有更好的方法? 谢谢了!