Lenguaje de programación Borland Delphi
Esta función en Delphi 6 realiza la marcación telefónica de un número dado en el puerto indicado. Para que funcione es necesario que haya un módem conectado al PC y que éste esté conectado a la línea telefónica desde la que se quiera realizar la llamada:
En primer lugar deberemos declarar una variable global, de la siguiente forma:
...
implementation
{$R *.dfm}
var
ficheroComunicacion : THandle;
...
function marcarTelefono (telefono : string; puerto : string) : boolean;
var
numeroTelefono : string;
numeroBytesEscritos : cardinal;
begin
numeroTelefono := 'ATDT ' + telefono + #13 + #10;
ficheroComunicacion := CreateFile(PChar(puerto), GENERIC_WRITE, 0, nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
if ficheroComunicacion = INVALID_HANDLE_VALUE then
Result := false
else
begin
numeroBytesEscritos := 0;
if WriteFile (ficheroComunicacion, PChar(numeroTelefono)^, Length(numeroTelefono),
numeroBytesEscritos, nil) = false then
Result := false
else
result := true;
end;
end;
Para colgar la llamada utilizaremos el siguiente procedimiento:
procedure colgarLlamada ();
begin
try
CloseHandle(ficheroComunicacion);
except
end;
end;
Un ejemplo de uso de la función:
if not marcarTelefono (md.tContactomovilempresa1.AsString, 'COM3') then
MessageDlg ('Error en la conexión con ' + '',
mtwarning, [mbok], 0)
else
MessageDlg ('Marcación realizada con éxito.',
mtInformation, [mbok], 0);
Publicado el: 2007-03-31