这是一个相当无方向的帖子,我担心我道歉。我试图弄清楚如何从win32(非通用)应用程序中使用Cortana。我发现this link但我无法判断是否有办法从非托管代码访问这些API。这让我找到了一条兔子小道,看看这个UniversalApiContract的东西是什么,以及如何使用它形成原生代码,但到目前为止,我的空洞已经很空了。
有人可以请我指点方向!!我甚至需要搜索什么来开始学习如何本地访问这些API?我应该在Windows运行时读取一些内容吗?
先谢谢,我再次为一般性问题道歉 - 不知道还有什么地方可以转。
答案 0 :(得分:9)
[对有多少人投票关闭帖子而没有任何有用的回应或建议表示不满]
现在,关于科学。 花了一些时间后,似乎这是不可能的。 我可以使用Visual C++ Component Extensions从Win32 调用API。这允许您使用Windows运行时和CLR之类的概念,但会产生纯粹的本机代码。作为旁注,由于我想将此链接与我不想使用此扩展重新编译的应用程序,我在DLL中执行此操作并延迟加载它。
不幸的是the call to install the voice command definition file因COMException而失败:该进程没有包标识。这意味着我可以成功调用API,但是它需要包标识 - 换句话说,它必须从具有应用程序标识的Modern / Store / Universal App上下文中调用。
我唯一的方法似乎是使用Cortana后台API与我在后台编写的现代应用程序接口,并使用它通过某种自定义通信将来自我的Win32应用程序的调用代理到Cortana。恶心。
我希望这有助于节省别人的时间。