Fórum Discador #222806
27/03/2004
0
Gvsfox
Curtir tópico
+ 0Posts
27/03/2004
Otto
var hCommFile : THandle; Status : LongBool; NumberWritten : DWORD; Buf : array [0..1023] of Byte; s : string;
no oncliquew do botao la
begin
s := cbPorta.text;
hCommFile:= CreateFile( PChar(s), GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0 );
if hCommFile = INVALID_HANDLE_VALUE then
begin
memo_msg.lines.clear;
memo_msg.lines.add(´Não foi possível abrir a porta selecionada.´);
memo_msg.lines.add(´Discagem não efetuada.´);
CloseHandle(hCommFile);
end
else
begin
memo_msg.lines.clear;
memo_msg.lines.add(´Discando...´);
if radio_tom.checked then//Cria a string de comando
s := ´ATDT´
else
s := ´ATDP´;
s := s + edRamal.text + #1310;
memo_msg.lines.add(s);
NumberWritten := 0;//Envia a String de Comando
Status := WriteFile( hCommFile,PChar(s)[0],
Length(s),
NumberWritten,
nil);
memo_msg.lines.add(´Aguardando Atendimento ...´);
Application.MessageBox(´Retire o telefone do gancho e clique OK para desligar o modem.´,´Atenção´
,+MB_Ok);
WriteFile(hCommFile,´ATH´, 5, NumberWritten,nil);//Desconecta a ligação (Hangup)
CloseHandle(hCommFile); //Fecha a porta de Comunicação
memo_msg.lines.add(´Modem Desconectado.´#1310);
end; // Begin
end; // Begin
end; // Procedure
{ Final do processo de discagem. }
olha a rotina e vc vai perceber que estou puxando valor de um edit um bombo, etc...
Gostei + 0
27/03/2004
Wbb
Procedure TForm1.Disca; begin //Abre a porta de comunicação s:=´Com3´; hCommFile :=CreateFile(PChar(s), GENERIC_WRITE,0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0); // Verifica a abertura da porta if hCommFile = INVALID_HANDLE_VALUE then CloseHandle(hCommFile) else begin s:=´ATDT´; s := s + Edit1.Text + #1310; NumberWritten:=0; Status:= WriteFile( hCommFile,PChar(s)[0],Length(s), NumberWritten, nil); end; end;
Procedure TForm1.Desliga; //Procedure para encerrar a discagem begin WriteFile(hCommFile,´ATH´,5,NumberWritten,nil); CloseHandle(hCommFile); end;
T+
wbb
OBS.: Retirado das dicas do boletim Active News N 125 - Dicas de Programação Delphi.
Gostei + 0
27/03/2004
Wbb
type
TForm1 = class(TForm)
Procedure Disca;
Procedure Desliga;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
hCommFile: THandle;
Status: LongBool;
NumberWritten: DWORD;
s : string;
implementation
{$R *.DFM}
Procedure TForm1.Disca;
begin
//Abre a porta de comunicação
s:=´Com3´;
hCommFile :=CreateFile(PChar(s), GENERIC_WRITE,0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);
// Verifica a abertura da porta
if hCommFile = INVALID_HANDLE_VALUE then CloseHandle(hCommFile)
else
begin
s:=´ATDT´;
s := s + ´nº a ser discado´ + #1310;
NumberWritten:=0;
Status:= WriteFile( hCommFile,PChar(s)[0],Length(s), NumberWritten, nil);
end;
end;
Procedure TForm1.Desliga;
//Procedure para encerrar a discagem
begin
WriteFile(hCommFile,´ATH´,5,NumberWritten,nil);
CloseHandle(hCommFile);
end;
end.wbb
Gostei + 0
03/06/2004
Rodrigo Lima
Valeu
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)