首页  编辑  

拨号Modem

Tags: /超级猛料/Network.网络通讯/FTP和拨号/   Date Created:

来自:ahxia, 时间:01-8-24 13:26:00, ID:605771  

刚刚做了一段东西,应该不是太难:

unit Unit1;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls;

type

 TForm1 = class(TForm)

   Edit_PhoneNumber: TEdit;

   btnOpen: TButton;

   btnClose: TButton;

   Edit_CommPort: TEdit;

   procedure btnOpenClick(Sender: TObject);

   procedure btnCloseClick(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 Form1: TForm1;

 hCommFile: THandle;

implementation

{$R *.dfm}

procedure TForm1.btnOpenClick(Sender: TObject);

var

 i: DWORD;

 PhoneNum: string;

begin

 PhoneNum := 'ATDT'+Edit_PhoneNumber.Text + #13+#10;

 hCommFile := CreateFile(PChar(Edit_CommPort.Text),

   GENERIC_WRITE,

   0,nil,

   OPEN_EXISTING,

   FILE_ATTRIBUTE_NORMAL,0);

 if hCommFile = INVALID_HANDLE_VALUE then

 begin

   ShowMessage('Cannot open Port: '+Edit_CommPort.Text);

   exit;

 end;

 i := 0;

 if not WriteFile(hCommFile,

   PChar(PhoneNum)^,

   Length(PhoneNum),

   i,

   nil) then

 begin

   ShowMessage('Write Port error: '+Edit_CommPort.Text);

   exit;

 end;

end;

procedure TForm1.btnCloseClick(Sender: TObject);

begin

 CloseHandle(hCommFile);

end;

end.

其实核心就是向 comm 口里写 atdt + 电话号

如果想挂断可以用 CloseHandle或者 ath0 ...