如何知道桌面客户端上是否有Skype活动

时间:2013-03-13 18:37:44

标签: api skype

我一直在浏览Skype dev API,并且想知道是否有一种方法可以让我知道Skype是否正在通过某些API运行活动呼叫。

Skype.Client.IsRunning告诉Skype应用程序本身是否正在运行,还有其他几个api知道不同的东西,如通话记录等,但我找不到办法知道是否有Skype通话目前。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

因为您没有指定您尝试使用哪种语言来表示我在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();
        }
    }
}

请注意,此代码不包含任何清理/错误处理。

希望这有帮助。

答案 1 :(得分:1)

另一个选择是使用skype命令:http://dev.skype.com/desktop-api-reference#OBJECT_CALL

答案 2 :(得分:0)

以下是如何检查使用SevabotSkype4Py中的有效来电的示例

基本上,您可以收听呼叫事件并捕获开始和结束呼叫事件,并在呼叫处于活动状态时自行保管。