我一直在浏览Skype开发API的一段时间,并想知道是否有方法可以通过我知道Skype是否正在通过某些API运行正在进行的通话。如何知道在桌面客户端上是否有Skype通话激活
Skype.Client.IsRunning可以告诉Skype应用程序本身是否正在运行,还有其他几个apis可以知道不同的事情,如通话记录等,但我找不到方法来知道是否有Skype通话目前活跃。
任何帮助将不胜感激。
我一直在浏览Skype开发API的一段时间,并想知道是否有方法可以通过我知道Skype是否正在通过某些API运行正在进行的通话。如何知道在桌面客户端上是否有Skype通话激活
Skype.Client.IsRunning可以告诉Skype应用程序本身是否正在运行,还有其他几个apis可以知道不同的事情,如通话记录等,但我找不到方法来知道是否有Skype通话目前活跃。
任何帮助将不胜感激。
因为你还没有在语言,你正在试图acomplish,我在C#中发布一个样品指定:
using System;
using System.Windows.Forms;
using SKYPE4COMLib;
namespace SkypeTest
{
public partial class Form1 : Form
{
private ISkype _skype;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
_skype = new SkypeClass();
var events = (_ISkypeEvents_Event) _skype;
events.CallStatus += (call, status) =>
{
System.Diagnostics.Debug.WriteLine(call.PartnerHandle);
Action<object, object> a = (partner, sta) =>
{
textBox1.Text = partner.ToString() + " " + sta.ToString();
};
textBox1.Invoke(a, call.PartnerDisplayName, status.ToString());
};
_skype.Attach();
}
}
}
注意,这个代码不包括任何清理/错误处理。
希望这会有所帮助。
真棒!多数民众赞成所有我需要的:) – Sumant 2013-03-15 07:47:18
另一种选择是使用Skype的命令:http://dev.skype.com/desktop-api-reference#OBJECT_CALL
IIRC,Skype拥有他们使用,你可以嗅出上的特定端口(认为Wireshark的),看看是否有活动 – KevinDTimm 2013-03-13 18:44:28
Skype的随机选择1024以上的端口,用于连接。 https://support.skype.com/zh/faq/FA148/which-ports-need-to-be-open-to-use-skype-for-windows-desktop – Sumant 2013-03-14 05:56:18
'当您安装Skype时,会选择一个随机端口为传入连接“ - 所以一旦你知道这个端口,你可以嗅探来电。 – KevinDTimm 2013-03-14 12:44:30