0

私はC#でskype4com APIをいじっているだけで、APIでskypeをミュートする方法について少し混乱しています。「skype.Mute = true;」という行でエラーが発生します。

エラー:

Error   1   Ambiguity between 'SKYPE4COMLib.ISkype.Mute' and   'SKYPE4COMLib._ISkypeEvents_Event.Mute'  C:\Users\derp\documents\visual studio   2010\Projects\SkypeBot\SkypeBot\Form1.cs    33  39  SkypeBot

コード:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SKYPE4COMLib;

namespace SkypeBot
{
public partial class Form1 : Form
{            
    public Skype skype = new Skype();
    public bool afk;
    public Form1()
    {
        InitializeComponent();
        ((_ISkypeEvents_Event)skype).MessageStatus += OnMessageStatus;
        skype.Attach(8);
    }
    void OnMessageStatus(ChatMessage msg, TChatMessageStatus status)
    {
            if (status.ToString() == "cmsSending" && msg.Sender.DisplayName == skype.CurrentUser.DisplayName)
            {
                if (msg.Body == "!afk")
                {
                        afk = !afk;
                        if (afk)
                        {
                            msg.Body = msg.Sender.FullName + " is now afk!";

次の行が問題です。

                            skype.Mute = true;
                        }
                        else
                        {
                            msg.Body = msg.Sender.FullName + " has returned!";
                        }
            }
        }
    }
}
}
4

1 に答える 1

1

Skype APIは手元にありませんが、SkypeクラスはMuteプロパティをサポートする2つのインターフェイスを実装しているようです。

特定のインターフェースへの参照をキャストしてから、次のようにメソッドを呼び出してみてください。

((ISkype)skype).Mute = true;

また

((_ISkypeEvents_Event)skype).Mute = true;
于 2012-12-21T01:23:57.780 に答える