我使用的是來自JulMar的TAPI 2.0包裝器(https://atapi.codeplex.com/),我遇到了麻煩。Atapi CallInfoChangeEvent未解僱
初始化
void initTAPI()
{
myTAPI = new TapiManager("GetCaller");
if (!myTAPI.Initialize())
{
MessageBox.Show("FAILED!");
}else
{
name = myTAPI.Lines[0].Name;
lineName = (myTAPI != null && myTAPI.Lines.Length > 0 ? name : string.Empty);
foreach(TapiLine line in myTAPI.Lines)
{
line.NewCall += this.OnNewCall;
line.Ringing += this.OnRinging;
line.CallStateChanged += this.OnCallState;
line.CallInfoChanged += this.OnCallInfo;
}
MessageBox.Show(lineName);
}
}
所以我得到的lineName
。現在當我通過程序撥打一個號碼,它觸發
OnCallState
private void OnCallState(object sender, CallStateEventArgs e)
{
if (InvokeRequired == true)
{
this.BeginInvoke(new EventHandler<CallStateEventArgs>(this.OnCallState), new object[] { sender, e });
return;
}
label1.Text = "Outgoing Call...";
}
但我真正想要做的是收到來電的號碼,但不會被解僱。
OnCallInfo
private void OnCallInfo(object sender, CallInfoChangeEventArgs e)
{
if (InvokeRequired == true)
{
this.BeginInvoke(new EventHandler<CallInfoChangeEventArgs>(this.OnCallInfo), new object[] { sender, e });
return;
}
label1.Text = "Incoming Call...";
}
它說somehwere,它只能與x86的工作,所以我改變了目標,但仍然沒有成功。
PS:我有一個呼叫管理器(ProCall)安裝在同一臺機器上,告訴我什麼時候有人打電話,所以我應該可以在c#中獲得信息?
這裏是整個代碼,如果有人感興趣:http://pastebin.com/Q5W5iGun
你不介意分享如何'lineGetCallInfo'會是什麼樣子?我對c#中的聽衆來說也是相當新穎的。謝謝! – PrimuS