[英]c# simple skype app throws COM exception
我正在制作我的第一个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:{“connection refused”}所以我想我的主要问题是为什么我的连接被拒绝当Skype甚至没有打开对话框询问我是否允许连接?
问题是您正在尝试在Visual Studio中进行调试。 不幸的是, 根据Skype本身 ,他们不支持在VS中使用此API和调试:
根据链接:
最常见的原因是您尝试在Visual Studio中调试程序。 展望未来,我们将无法支持使用visual studio托管流程进行调试。 你可以通过以下方式关闭它:
- 在VS中打开您的项目
- 打开你的项目属性
- 单击调试选项卡
- 解开“使用visual studio hosting process”
- 重建您的应用程序并开始调试它应该工作正常。
我面临同样的问题。 这样我解决了它。
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
,然后你的工作将完成。 希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.