![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Модем [D5, D6, Win2k, WinXP]
ППавел © (2002-08-07 04:55:00)Народ подскажите пожалуста как можно управлять модемом.
Тоесть заставить набирать нопределенный номер со всеми фишками
(пароль и имя пользователя)
Serg Gurin (2002-09-19 01:21:00) [1]Просто звонок - дальше можно корявить по своему разумению
function Ring(PhoneNumber, Client: String; PhoneCom: Integer): String;
var
Comment: Boolean;
i : integer;
hCommFile : THandle;
CommPort, dialPhoneNumber : string;
NumberWritten : Cardinal;
begin
Result := "";
i:=1;
Comment := False;
while i <= Length(PhoneNumber) do
begin
if not Comment then
Comment := PhoneNumber[i] = "|";
if not (PhoneNumber[i] in ["p", "P", "w", "W", ",", "0".."9"]) or Comment then
Delete(PhoneNumber, i, 1)
else
inc(i);
end;
if (Pos("p", PhoneNumber) > 1) or (Pos("P", PhoneNumber) > 1) then
begin
Result := "Неверно задан номер "+PhoneNumber;
Exit;
end;
CommPort := "COM"+IntToStr(PhoneCom);
hCommFile := CreateFile(PChar(CommPort),
GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if hCommFile=INVALID_HANDLE_VALUE then
begin
Result := "Нет возможности открыть "+ CommPort+".";
exit;
end;
{Dial the phone}
dialPhoneNumber := "ATDT "+PhoneNumber+#13+#10;
NumberWritten:=0;
if WriteFile(hCommFile,
PChar(dialPhoneNumber)^,
Length(dialPhoneNumber),
NumberWritten,
nil) = false then
begin
Result := "Нет возможности набрать номер "+ PhoneNumber+".";
CloseHandle(hCommFile);
Exit;
end
else
begin
MessageBox(Application.Handle, "Как будет набран номер, поднимите трубку и нажмите OK."^M+
"Или, если хотите прервать набор, то нажмите OK не поднимая трубки.",
PChar(Client+" : "+PhoneNumber), MB_OK+MB_ICONEXCLAMATION);
WriteFile(hCommFile, "ATH"^M^J, 5, NumberWritten, nil);
end;
{Close the port}
CloseHandle(hCommFile);
end;
Написал не я, но работает отлично
LEgO-2 (2002-09-17 17:15:00) [2]ндя... у меня немного другая трабла: номер набрать то мона, но влт например нужно мне перевести момёд из импульсного режима в тоновый ВО ВРЕМЯ набора номера...
Например есть номер телефона(для мобилы), и для того что бы позвонить не него нужно набрать сначало один номер и после того как тетка скажет, что "нужно перевести телефон в тональный набор и набрать номер" перевести его и далее набирать номер...
N_M_A (2002-09-17 12:12:00) [3]И мне, если еще разок не затруднит пожалуйста !!!
DjZapodlak (2002-09-17 05:36:00) [4]Ну ели не надоело то и мне пожалуста!!!
vinter (2002-09-13 12:56:00) [5]И мне тоже мона
Евген (2002-09-12 18:13:00) [6]
> Juve ©
И мне плз вышли :)
alexta (2002-09-11 16:24:00) [7]Всем выслали? ;)
А слабо взять любой компонент для работы с СОМ-портом (как самый простой вариант) и потрудиться заглянуть в мануал к модему?
Arkan (2002-09-10 03:42:00) [8]и мне пожалуста Raptugava@hotmail.com
michael_b (2002-09-09 12:58:00) [9]и мне bondarevsky2001@mail.ru
UnixManiac (2002-09-09 01:12:00) [10]А мне выщли...
unixmaniac@chat.ru
- Lazure - (2002-09-08 22:26:00) [11]Где компонент? А прислать может кто?
ППавел (2002-08-13 04:55:00) [12]А ну дак как там с исходниками
Pingo (2002-08-08 11:49:00) [13]С завидной периодичностью возникает данный вопрос.
Если Вы не пишите чего-то универсального, а реализуете какое-то определенное решение может лучше использовать AT команды.
Благо с каждым модемом идет немалое PDFное руководство с прекрасным описанием. Если лень писать что-то для порта - есть прекрасный компонент. В итоге вы можете добится немалого с небольшими трудовыми затратами.
По-моему, это правильней!
Filat (2002-08-08 11:12:00) [14]А мне можешь выслать?
на sfilat@cr.avalbank.com
спасибо!
ППавел (2002-08-08 07:02:00) [15]высылай
Juve (2002-08-08 01:02:00) [16]Есть у меня пара примерчиков, где то скаченных (на будущее).
Я сам толком не разбирался, но если что - могу выслать.
Может поможет...