PDA

View Full Version : شماره گیری اتوماتیک توسط دلفی؟



spenans
جمعه 23 اردیبهشت 1384, 14:49 عصر
سلام میخواستم بپرسم چگونه می توام از طریق یک dbedit که حاوی یک شماره تلفن هست بتوان عمل شماره گیری را انجام داد اگر این کار امکان دارد بطور کامل شرح دهید
با تشکر

m-khorsandi
جمعه 23 اردیبهشت 1384, 18:14 عصر
درود

شما برای شماره گیری یا اصولا برای کار با مودم میتونید از Component هایی که در تاپیکهای مختلفی در
مورد اونها صحبت شده استفاده کنید که هم تست شده هستند و هم کامل.

اما صرفا برای شماره گیری میتونید از این Procedure هم استفاده کنید:




public
Var_ComFile: THandle;
procedure Prc_Dial(Prm_Phone: String);
Procedure Prc_HangingUp();
...
...
...
procedure TForm1.Prc_Dial(Prm_Phone: String);
Var
Var_DeviceName: Array[0..80] Of Char;
Var_DCB: TDCB;
Var_Config: String;
Var_CommTimeOuts: TCommTimeouts;
Var_DialingStr: String;
Var_BytesWriten: DWORD;
begin
StrPCopy(Var_Devicename, 'COM3:');
CloseHandle(Var_ComFile);
Var_ComFile := CreateFile(Var_DeviceName, GENERIC_READ or GENERIC_WRITE, 0, Nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Var_Config := 'Baud=19200 Parity=n Data=8 Stop=1';
Var_DialingStr := 'ATDP ' + Prm_Phone + #13 + #10; //ATDP for Dial Pulse, ATDT for Dial Tone

With Var_CommTimeOuts do
Begin
ReadIntervalTimeout := 0;
ReadTotalTimeoutMultiplier := 0;
ReadTotalTimeoutConstant := 100;
WriteTotalTimeoutMultiplier := 0;
WriteTotalTimeoutConstant := 100;
End;

If (Var_ComFile = INVALID_HANDLE_VALUE) Or (Not (SetupComm(Var_ComFile, 256, 256))) Or (Not (GetCommState(Var_ComFile, Var_DCB)))
Or (Not (BuildCommDCB(@Var_Config[1], Var_DCB))) Or (Not (SetCommState(Var_ComFile, Var_DCB)))
Or (Not (SetCommTimeouts(Var_ComFile, Var_CommTimeOuts))) Or (not WriteFile(Var_ComFile, Var_DialingStr[1], Length(Var_DialingStr), Var_BytesWriten, Nil))
Then
Begin
ShowMessage('Device is unable to dialing.');
CloseHandle(Var_ComFile);
Exit;
End;

PurgeComm(Var_ComFile, PURGE_TXCLEAR Or PURGE_RXCLEAR);
end;

procedure TForm1.Prc_HangingUp;
begin
CloseHandle(Var_ComFile);
end;

شنبه 24 اردیبهشت 1384, 13:02 عصر
نحوه کار با تلفن کامل بحث شده کافیست جستجو نمایید .

:موفق: