Discar una llamada Teléfonica por VB

jos?
19 de Enero del 2006
Un saludo a la comunidad de distintas regiones:

Me gustaría saber si alguien ha hecho o conoce alguna web, manual o código en alguna parte de la internet que permita realizar un pequeño programa en VB que permita discar números teléfonicos almacenados en una base de datos. Supongo que está dificil ¡verdad!, no sé, bueno, si alguien ya ha implementado esta idea, que por favor me indique, especialmente por código y uso de controles.

Muchas gracias.

henry
19 de Enero del 2006
amigo mio, tengo un problema :
necesito capturar el numero telefonico de una llamada que ingresa a mi sistema donde tengo sus datos, tengo algunas referencias que debo usar la dll TAPI32.dll para configurar, pero no tengo mas datos, te agradaceria me ayudes

HENRY

Ren?
19 de Enero del 2006
Intenta con el control mscomm

saludos

webJose
19 de Enero del 2006
Esta es una solución rudimentaria, pero que normalmente funciona bien. Note que el puerto COM está especificado dentro del código. Eso no es bueno. Busque una manera de obtener el puerto COM del módem.

public sub Discar(byval strTel as string)

dim numArch as integer

numArch = freefile
open "COM4:" for binary access read write as #numArch
write #numArch, "ATDT" & strTel
end sub

Eso debería funcionar. Sin embargo, tome en cuenta de que nunca lo he hecho anteriormente.

jos?
19 de Enero del 2006
Gracias Sr. webJosé, había colocado la pregunta en otros Foros para abarcar más terreno, a ver si quien supiese, observara la pregunta y pudiese contestar. Hasta la fecha, me pasaron este código el cual hace su trabajo. Pero lo que hace es marcar por medio del Marcador de Teléfonos del Windows. ¿Por qué hacer un programa, si ya hay uno que hace eso? para agregarle o quitarle cosas y acondicionarlo a mis necesidades.

Este es el código:

Public Declare Function tapiRequestMakeCall& Lib "TAPI32.DLL" (ByVal DestAddress$, ByVal AppName$, ByVal CalledParty$, ByVal Comment$)

Private Sub Command1_Click()
Dim llamo As Long
Dim llamos As String
llamos = Text1.Text
llamo = tapiRequestMakeCall&(llamos, "", "", "")
End Sub

Lo que hice fue, bajarme un código que cierra una aplicación indicada, para que cuando marque un teléfono, desde mi misma agenda de teléfonos hecha en VB, con otro código, cierra la aplicación que marca el teléfono. Se busca al usuario por el campo "Nombre clave" y aparecen todos los demás datos al pulsar enter, entre ellos, nombre completo, varios teléfonos, email, dirección, etc. Y es para sin marcar ningún teléfono, solo indicarle a la agenda, cuál va a marcar, y lo hace.

Pero estoy viendo eso de que marque sin usar como puente otro programa, que sea más independiente, pero por ahora usa el Marcador de Windows y luego lo cierro, pero aun no logro que lo cierre automáticamente, eso debo hacerlo yo por medio de otro botón. Pero hasta ahora, cumple la idea que tenía en mente.

EL código con el que cierro el Marcador de teléfonos luego de haber marcado es este:

winHwnd = FindWindow(vbNullString, "Marcador de teléfono")
If winHwnd <> 0 Then
RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)
If RetVal = 0 Then
FrmAviso.Label1.Caption = "Error."
FrmAviso.Show vbModal
Else
FrmAviso.Label1.Caption = "El Marcador de Teléfonos está cerrado"
FrmAviso.Show vbModal
End If
Else
FrmAviso.Label1.Caption = "El Marcador de Teléfono no está abierto"
FrmAviso.Show vbModal
End If

Si conoce la manera de perfeccionarlo, agradecería que me notifique, bueno.

Saludos