Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];

Вниз

Как набреть номер   Найти похожие ветки 

 
XOY   (2002-03-08 17:54) [0]

То, что модем - это ком порт я уже знаю (теории я начитался) только вот на практике проблемы. Если не трудно напишите простенький юнит (только полностью) который может набрать номер через CreateFile. (если интересно, то модем USR 56K) Буду очень благодарен.


 
cok   (2002-03-08 20:49) [1]

До слова implementation напишите такой код:

{tapi Errors}
const TAPIERR_CONNECTED = 0;
const TAPIERR_DROPPED = -1;
const TAPIERR_NOREQUESTRECIPIENT = -2;
const TAPIERR_REQUESTQUEUEFULL = -3;
const TAPIERR_INVALDESTADDRESS = -4;
const TAPIERR_INVALWINDOWHANDLE = -5;
const TAPIERR_INVALDEVICECLASS = -6;
const TAPIERR_INVALDEVICEID = -7;
const TAPIERR_DEVICECLASSUNAVAIL = -8;
const TAPIERR_DEVICEIDUNAVAIL = -9;
const TAPIERR_DEVICEINUSE = -10;
const TAPIERR_DESTBUSY = -11;
const TAPIERR_DESTNOANSWER = -12;
const TAPIERR_DESTUNAVAIL = -13;
const TAPIERR_UNKNOWNWINHANDLE = -14;
const TAPIERR_UNKNOWNREQUESTID = -15;
const TAPIERR_REQUESTFAILED = -16;
const TAPIERR_REQUESTCANCELLED = -17;
const TAPIERR_INVALPOINTER = -18;

{tapi size constants}
const TAPIMAXDESTADDRESSSIZE = 80;
const TAPIMAXAPPNAMESIZE = 40;
const TAPIMAXCALLEDPARTYSIZE = 40;
const TAPIMAXCOMMENTSIZE = 80;
const TAPIMAXDEVICECLASSSIZE = 40;
const TAPIMAXDEVICEIDSIZE = 40;

function tapiRequestMakeCallA(DestAddress : PAnsiChar;
AppName : PAnsiChar;
CalledParty : PAnsiChar;
Comment : PAnsiChar) : LongInt;
stdcall; external "TAPI32.DLL";

function tapiRequestMakeCallW(DestAddress : PWideChar;
AppName : PWideChar;
CalledParty : PWideChar;
Comment : PWideChar) : LongInt;
stdcall; external "TAPI32.DLL";

function tapiRequestMakeCall(DestAddress : PChar;
AppName : PChar;
CalledParty : PChar;
Comment : PChar) : LongInt;
stdcall; external "TAPI32.DLL";

Нажатие кнопки обработайте следующим образом:

procedure TForm1.Button1Click(Sender: TObject);
var
DestAddress : string;
CalledParty : string;
Comment : string;
begin
DestAddress :={phone number}"545-17-26";
CalledParty := "___Nikolay";
Comment := "Calling to ___Nikolay";
tapiRequestMakeCall(pChar(DestAddress),
PChar(Application.Title),
pChar(CalledParty),
PChar(Comment));
end;




 
Sasha9   (2002-03-08 21:37) [2]

а как это сделать через АТ команды модема?


 
XOY   (2002-03-10 16:18) [3]

Cok спасибо за код. Все работает! Только такая проблема: при запуске этой процедуры запускается виндозовский телефон. А я хочу все свое сделать (т.е. через ATDP звонить). Если кто знает как это осуществить кинте сюда код пожалуйста. Очень нужно!


 
Sasha9   (2002-03-12 11:18) [4]

и я о том же


 
XOY   (2002-03-12 19:34) [5]

Похоже что об этом вообще никто не знает! Уже в нескольких местах читал что через CreateFile должно работать, но когда я записываю в COM порт "atz" или "atdp..." модем вообще не реагирует. Может я что не так делаю?..


 
Sasha9   (2002-03-12 19:36) [6]

а можно по0подробнее про CreateFile ?


 
XOY   (2002-03-12 20:02) [7]

Ну вот сиходник. Смысл в том что открываешь КОМ как фаил и пишишь в него что хочешь. Только вот это теоритически ...
Если найдешь глюк или ошибку то скажи.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure prINITPROGRAM(Sender: TObject);
procedure prCLOSE(Sender: TObject; var Action: TCloseAction);
procedure prINITModem(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
FHandle: Thandle;
ComString: String;
bcdc: dcb;
bukva: array[1..50] of char;

implementation

{$R *.DFM}

procedure TForm1.prINITPROGRAM(Sender: TObject);
begin
ComString:= "COM3";
FHandle :=CreateFile(PChar(ComString),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);
if FHandle = INVALID_HANDLE_VALUE then Showmessage("Fatal error") else Showmessage("Port initialized");
with bcdc do begin
baudrate:=2400;
bytesize:=8;
parity:=noparity;
stopbits:=onestopbit;
end;
setcommstate(FHandle,bcdc);

end;

procedure TForm1.prCLOSE(Sender: TObject; var Action: TCloseAction);
begin
CloseHandle(FHandle);
end;

procedure TForm1.prINITModem(Sender: TObject);
var
nmb: DWord;
i: word;
begin
Bukva[1]:= " ";
Bukva[2]:= "a";
Bukva[3]:= "t";
Bukva[4]:= "z";
//Bukva[5]:= char($0A);
Bukva[5]:= char($0D);
for i:= 1 to 6 do
WriteFile(FHandle,bukva[i],1,nmb,nil);
ShowMessage(Inttostr(nmb));
{Bukva[1]:= " ";
Bukva[2]:= "a";
Bukva[3]:= "t";
Bukva[4]:= "d";
Bukva[5]:= "p";
Bukva[6]:= " ";
Bukva[7]:= "1";
Bukva[8]:= "2";
Bukva[9]:= "3";
Bukva[10]:= "4";
Bukva[11]:= "5";
Bukva[12]:= "6";
for i:= 1 to 12 do
WriteFile(FHandle,bukva[i],1,nmb,nil);}
end;

end.


 
Sasha9   (2002-03-12 20:25) [8]

у меня мигают лампочко TXD и RXD (по-моему это отсылка и приём) и ничего не просисходит, имхо CreateFile не для этого


 
Sasha9   (2002-03-12 20:33) [9]

кстати, только что отрыл в MS SDK раздельчик Basic Telephony Services Functions, может там что есть....


 
XOY   (2002-03-12 23:14) [10]

Если что найдешь то скажи.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.06.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
14-18149
Mikeee
2002-05-03 13:38
2002.06.06
По какому событию...


1-17996
Maxman
2002-05-24 08:22
2002.06.06
Нужен компонент


14-18142
PaRL
2002-04-28 12:28
2002.06.06
Files


4-18197
heruvim4ik
2002-04-05 00:55
2002.06.06
Как програмно запустить приложение?


3-17770
VicV
2002-05-13 17:59
2002.06.06
фильтр в TTable по месяцам





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский