我正在制作我的第一个Skype应用程序,可以简单地向用户发送消息,但是当我调试时,我得到一个异常会导致我的应用程序崩溃。 这是代码:
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 skype_app;
using SKYPE4COMLib;
namespace skype_app
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
var oskype = new SKYPE4COMLib.Skype();
oskype.PlaceCall(textBox1.Text);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
var oskype = new SKYPE4COMLib.Skype();
oskype.SendMessage(textBox1.Text, textBox2.Text);
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
}
}
我使用了一些额外的参考资料 参考清单:
以下是我得到的例外情况: System.RUntime.InteropServices.ComException:{“连接被拒绝”} 所以我想我的主要问题是为什么当Skype甚至没有打开对话询问我是否允许连接时,我的连接被拒绝了?
答案 0 :(得分:10)
问题是您正在尝试在Visual Studio中进行调试。不幸的是,according to Skype themselves,他们不支持使用此API&在VS中调试:
根据链接:
最常见的原因是您正在尝试调试该程序 在Visual Studio中。展望未来,我们将无法支持使用 visual studio托管过程进行调试。你可以把它关掉 由:
- 在VS
中打开您的项目- 打开您的项目属性
- 点击调试标签
- 取消“使用visual studio hosting process”
- 重建您的应用程序并开始调试,它应该可以正常工作。
答案 1 :(得分:2)
我面临同样的问题。这样我解决了它。
Skype skype;
skype = new SKYPE4COMLib.Skype();
Call call = skype.PlaceCall(txtPhonenNo.Text);
首先登录skype并转到工具>选项>高级设置
你的屏幕看起来像
点击管理其他程序对Skype的访问
然后会出现另一个窗口,它会显示尝试访问skype的所有程序名称。如果存在,只需选择全部并删除它。
然后再次运行您的程序并转到可以使用此选项的屏幕上点击管理其他程序对Skype的访问
点击那里会出现一个窗口,它会显示你的应用程序的名称,只需选择该名称,然后点击更改按钮,然后会出现另一个窗口,看起来像
在该窗口中只需选择名为allow this program to access skype
的选项,然后在Skype窗口中显示一个对话框
你需要点击allow access button
,然后你的工作就完成了。希望这会有所帮助。