我有一个名为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的更多信息。
谢谢你的回复。
答案 0 :(得分:1)
您希望使用COM Interop为COM +组件创建包装器。
请参阅此处的MSDN教程:http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx
我已经有一段时间了,因为我自己做了任何com互操作,但上面的教程非常详尽!