通过C#调用Airfoil的进程com对象

时间:2014-07-08 14:14:52

标签: c# .net com

我有一个名为AirFoil的应用程序。我联系了他们的支持,因为我需要在我的应用程序中访问他们程序的功能。 他们有一个基于进程外COM的API。如何通过C#?

与这个COM对象进行交互

他们给我发了一个Javascript示例:

// This script sample demonstrates how to enumerate the list of recent sources
// and the list of running sources that Airfoil for Windows sees.
// You can run this from the command line using cscript.exe.


function endsWith(str, suffix) 
{
   return str.indexOf(suffix, str.length - suffix.length) !== -1;
}

var airfoilApp = WScript.CreateObject("RogueAmoeba.Airfoil");

var recentSources = airfoilApp.GetRecentSources();
for(var i = 0; i < recentSources.Count(); i++)
{
    var audioSource = recentSources.Item(i);
    WScript.Echo("Recent source " + i + " is " + audioSource.Name());
}

var runningSources = airfoilApp.GetRunningSources();
for(var i = 0; i < runningSources.Count(); i++)
{
   var audioSource = runningSources.Item(i);
   WScript.Echo("Running source " + i + " is " + audioSource.Name());

   if(endsWith(audioSource.Id().toLowerCase(),"firefox.exe"))
   {
       airfoilApp.SetCurrentSource(audioSource);
   }
}

那么我怎样才能在C#中做同样的事情呢?如何实例化对象?我需要什么参考?

var airfoilApp = WScript.CreateObject("RogueAmoeba.Airfoil");

很抱歉,但我没有关于API的更多信息。

谢谢你的回复。

1 个答案:

答案 0 :(得分:1)

您希望使用COM Interop为COM +组件创建包装器。

请参阅此处的MSDN教程:http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx

我已经有一段时间了,因为我自己做了任何com互操作,但上面的教程非常详尽!