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

Sum*_*ant 5 api skype

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

Skype.Client.IsRunning告诉Skype应用程序本身是否正在运行,还有其他几个api知道不同的东西,如呼叫历史记录等,但我找不到一种方法来知道当前是否有skype呼叫处于活动状态.

任何帮助将不胜感激.

Vag*_*aus 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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助。