使用Leap Motion编写PowerPoint自定义代码?

10

我正在尝试制作一个基于手势的PowerPoint幻灯片。在Windows打开那个特定的PowerPoint文件(.ppt)时,JavaScript肯定不起作用。

我在谷歌上搜索了一下,在Leap Motion论坛上发了一个问题,但都没有结果。我的主要问题有:

  1. 我不确定在这里应该使用什么。有没有为此目的而设计的SDK?简单地说,我该如何为我们系统上的PowerPoint文件编写一些自定义代码? Leap Motion 应用可以用C#、C++、Python、JavaScript、Java和Objective-C开发

  2. Leap Motion 设备的代码与上述代码进行集成。

如果您回复其中任何一个点都可以。很抱歉我无法发布任何代码,因为我对基于PowerPoint的系统编程完全是新手。

我愿意使用任何语言(C、C#、C++、Java和Objective-C),只要它让我完成任务即可。附带一些信息/代码的建议肯定会有所帮助。

我是一名PHPJavaScript开发人员。希望我的表达清晰,不被误解。
更新:
我发现了LEAP Motion Controller Add-ins for Microsoft Office 2010/2013 (C#)

如有需要,请随意更正标记。 - HIRA THAKUR
嗨,看起来你可以在这里找到有用的信息、源代码和/或合作者:http://leapoffice.codeplex.com/。 - razcor
@razcor:我该如何让C++、Python、Java的SO社区看到这个问题?我想我需要在这里使用超过5个标签。 - HIRA THAKUR
我刚刚重新标记了你的帖子!我不知道目前是否有涉及Mac Os X、Leap Motion和MS Office的开源项目,你可以在其中找到信息。 - razcor
忘记提到了,为了在Mac上运行.NET应用程序,您可以使用Mono(http://www.mono-project.com/Main_Page)。 - Amir Keibi
显示剩余7条评论
4个回答

8
您找到的 LEAP Motion Controller Add-ins for Microsoft Office 可能是将控制器与Powerpoint集成的最佳方式。
要开始使用它,您需要Visual Studio(似乎需要2012版)。Microsoft在Office Development in Visual Studio上提供了概述页。
按照配置计算机以开发Office解决方案页面上的说明操作。
下载Windows版Leap SDK并解压缩它,然后在Visual Studio中的GestureLib.NET4.0项目中添加对LeapCSharp.NET4.0 dll的引用。
在GestureListener.cs中进行微小的修复(在第44行处使用IsEmpty)。
之后,您应该能够从Visual Studio内运行LEAP Motion控制器Add-in。这将启动Powerpoint。
“VSTO”是您在此处使用的技术名称,因此要获取更多信息,请搜索“VSTO add-in powerpoint”。
Add-In的源代码来看,您应该在Powerpoint的功能区上看到一个单独的按钮,用于启动和停止Leap。
查看ThisAddIn.cs后,一旦启动(通过按功能区上的按钮),控制器应该对左右手势做出响应,并分别移动到下一个/上一个幻灯片。
                if (direction.ToString() == "Right")
            {
                Application.ActivePresentation.SlideShowWindow.View.Next();
                LastGesture = DateTime.Now;
            }
            if (direction.ToString() == "Left")
            {
                Application.ActivePresentation.SlideShowWindow.View.Previous();
                LastGesture = DateTime.Now;
            }

手势库支持其他手势,您可以根据同样的模式让它们执行不同的操作。

我想和你聊聊,请告诉我你在stackoverflow上什么时候在线?我找到了这个网址:http://code.msdn.microsoft.com/office/How-to-Automate-control-23cd2a8f - HIRA THAKUR
1
好的,那个是自动化Powerpoint。Com互操作是一种不同于VSTO的方法(即使它说它使用VSTO),你可以用这种方式做事情。请参见https://dev59.com/vUnSa4cB1Zd3GeqPRM14和http://blogs.msdn.com/b/ericwhite/archive/2010/12/02/understanding-the-three-approaches-to-office-development-using-vsto.aspx。 - JasonPlutext
好的,我在插件中看到了代码,我认为编码部分并不多,原因是他们在插件中涵盖了所有部分... 我只需要将所有文件导入到我的Visual Studio中,还需要什么? - HIRA THAKUR
请查看我的编辑;最终您需要考虑部署。谷歌搜索“ClickOnce 部署”以了解一种方法。 - JasonPlutext
好的,在将这些文件导入到我的项目文件夹之后,我需要找出手势检测的代码及其部署方式? - HIRA THAKUR
1
不错的解决方案!只是顺便提一下:VSTO仅适用于VS专业版或更高版本(请参见http://en.wikipedia.org/wiki/Visual_Studio_Tools_for_Office)。它将无法与免费的Express版本或SharpDevelop一起使用。 - stefan.schwetschke

2
一个非常简单的解决方案可能如下所示:
  1. 基于LeapMotion API构建一个基本的C#应用程序(可以使用SDK中的 C#示例应用程序)。该应用程序必须允许在后台运行。它连接到LeapMotion并等待手势。它提供了一个.NET远程接口 (参见此处的一个简单示例),并为每个有趣的手势引发一个事件 (参见此处的关于带有远程的事件示例)。当您使用示例应用程序时,只需将一些SafeWriteLine(...)替换为引发相应的事件即可。
  2. 用C#构建一个Office插件(只需使用NetOffice,它是免费的)。这个插件启动第1步的后台应用程序,通过远程连接并等待事件。
  3. 当插件获得事件时,在PowerPoint中触发相应的操作(例如presentation.GotoSlide(presentation.Slides.Count))。

嘿,谢谢你的回答,但如果可能的话,你能否在你的回答中添加一些细节?你以前构建过跳跃应用程序吗? - HIRA THAKUR
我是开发者计划的一部分。但是我还没有公开可用的Leap Motion应用程序(尚未)。 - stefan.schwetschke
但是如果我不想使用任何互联网,Python或C#是否最好? - HIRA THAKUR
ZeroMQ在Windows上使用TCP非常快。如果您担心安全问题,只需检查连接是否来自本地主机或在每个请求中包含一个随机创建的UUID,存储在本地文件中,可由Office插件和LeapMotion应用程序访问,并在每次应用程序重新启动时刷新。否则,请使用命名管道进行通信(例如:https://dev59.com/c2rXa4cB1Zd3GeqPBq-s)。 - stefan.schwetschke
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/36738/discussion-between-vagabond-and-stefan-schwetschke - HIRA THAKUR
显示剩余3条评论

2
如果您的目的只是与PowerPoint演示文稿进行交互,那么一个简单的解决方案可能是使用BetterTouchTool。它专为OS X设计,与Leap Motion Controller配合使用,允许您将手势(由LM控制器捕获)映射到键盘快捷键,并且只要它配置正确,在后台运行时就可以工作。
基本上,应该可以将向右的X指手势映射为按下右箭头键-这将使演示文稿转到下一张幻灯片。等等。
然而,如果您正在寻找一个编程挑战/希望将其制作成Airspace应用程序,那么您可以使用类似Apache POI的Java API。这是一个更复杂的解决方案,但它确实有一个好处,即它将在OS X上运行-并需要您处理一些代码:)。
看起来最简单的解决方案是按照将幻灯片导出为图片的示例操作。现在你有了一组图片 - 每张 PowerPoint 幻灯片对应一张图片。这给了你很多选择,例如:
  • 你可以将这些数据视为内存数据库(和 Web 服务),回到你熟悉的 PHP 和 JS 的舒适区,并使用 Leap Motion 控制器的 JS API 捕捉手势,从而驱动一个在线图片库。
  • 你可以使用 Java API 开发纯 Java 解决方案,从 Leap Motion 控制器捕捉手势并使用 Swing/JavaFX 显示数据,或者在浏览器中使用 JSF 显示数据。

这个程序'Better Touch Tool'能让我控制我的PPT幻灯片,当它们被打开时,映射是如何完成的?我请求您给一个稍微详细的答案。我们在Windows上有类似的应用程序吗?您以前做过Leap程序集成吗?谢谢。 - HIRA THAKUR
1
我相信是这样的。我没有 Mac,所以并不确定,但我的一个朋友已经使用了它和他的 Leap Motion Controller 一起使用,并发现它可以良好地集成。它是免费的,所以值得下载并简要尝试一下。根据网站的描述应该可以设置映射到按键,然后在后台运行。Windows 上似乎没有支持,也不太可能会有支持。在我的空闲时间里,我正在尝试 Leap Motion 手势集成 - Levity

0

PowerPoint和所有的办公工具都支持Visual Basic .NET宏。只需为您的PPT文件编写一个VB宏,识别手势并触发页面更改操作即可。

如果您想要的话,Leap Motion的C#代码可以集成到您的VB.NET宏中。


谢谢你的回答,但说实话,你能详细解释一下你所说的内容吗? - HIRA THAKUR
PowerPoint 幻灯片可以包含 Visual Basic 代码:例如,您可以执行与事件相应的代码(例如单击)。 - Marco Marsala
你能加入聊天吗? - HIRA THAKUR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接