 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
carcleo Novato

Registrado: Quarta-Feira, 14 de Setembro de 2005 Mensagens: 37
|
Enviada: Ter Nov 21, 2017 7:46 pm Assunto: Receber dados do Modem 56kbps |
|
|
Gostaria de saber como Receber dados do Modem 56 kbps!
Tenho uma aplicação com um cadastro simples de clientes onde um dos campos da tabela Clientes é o telefone!
Essa aplicação fica aberta direto!
Gostaria de, quando receber uma ligação, guardar o número do telefone que está ligando para nós!
Então, o sistema irá fazer busca por esse telefone no cadastro de clientes e caso haja algum cliente com o tal telefone seu registro é lançado na tela.
A parte do sistema está pronta! Mas capturar o número do telefone não estou sabendo!
Tenho o form abaixo onde eu já consigo ligar e receber ligações, mas receber o número de quem me ligou não sei qual o comando para isso!
Ah! Sim, o plano da operadora inclui o serviço BINA. O aparelho que tenho na mesa tem o bina embutido e funciona!
Código: |
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, spBina;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
ComboBox1: TComboBox;
Memo1: TMemo;
RadioButton1: TRadioButton;
spBina1: TspBina;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
hCommFile: THandle;
Status: LongBool;
NumberWritten: DWORD;
Buf : array[0..1023] of Byte;
s :string;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
//Testa os valores necessários
if (combobox1.text <> '') and (edit1.text<>'') then
begin
//Abre a porta de comunicação
s:=Combobox1.text;
hCommFile := CreateFile (
PChar(s),
GENERIC_WRITE,
0, // não compartilhado
nil, // sem segurança
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
// Verifica a abertura da porta
if hCommFile = INVALID_HANDLE_VALUE then
begin
memo1.lines.clear;
memo1.lines.add('Não foi possível abrir a porta selecionada.');
memo1.lines.add('Discagem não efetuada');
CloseHandle(hCommFile);
end
else
begin
memo1.lines.clear;memo1.lines.add('Discando...');
//Cria a string de comando
if radiobutton1.checked then
s:=' ATDT'
else
s:='ATDP';
s := s + edit1.text + #13#10;
memo1.lines.add(s);
//Envia a String de Comando
NumberWritten:=0;
Status:= WriteFile( hCommFile,PChar(s)[0],Length(s), NumberWritten, nil);
memo1.lines.add('Aguardando Atendimento ...');
MessageDlg('Retire o telefone do gancho' + 'e clique OK para desligar omodem',mtInformation,[mbok], 0);
//Desconecta a ligação
WriteFile(hCommFile,'ATH',5,NumberWritten,
nil
);
//Fecha a porta de comunicação
CloseHandle(hCommFile);memo1.lines.add('Modem Desconectado.'#13#10);
end;
end;
end;
end. |
|
|
Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
|
Voltar ao Topo |
|
 |
carcleo Novato

Registrado: Quarta-Feira, 14 de Setembro de 2005 Mensagens: 37
|
Enviada: Qua Nov 22, 2017 10:28 am Assunto: |
|
|
Então. Como fazer para receber chamada pelo superbina?
Qual o comando?
Pois como ele está configurado, apenas está fazendo chamadas.
Não recebendo! |
|
Voltar ao Topo |
|
 |
carcleo Novato

Registrado: Quarta-Feira, 14 de Setembro de 2005 Mensagens: 37
|
Enviada: Qua Nov 22, 2017 4:25 pm Assunto: |
|
|
Descobri que fazendo:
Código: | s := 'ATA+ #13#10; |
Recebe a ligação:
Mas vem junto o barulho do modem
E ainda não consigo pegar o número do telefone |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|