使用跳跃动作为PowerPoint编写自定义代码?

我正在尝试制作基于PowerPoint幻灯片手势 。 JavaScript肯定不会在这里工作,因为当我为Windows打开特定的PowerPoint文件(.ppt)时,我希望我的幻灯片工作正常。

我用谷歌搜索,在Leap Motion论坛上发布了一个问题,但是徒劳无功。 我主要担心的是:

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

  2. Leap Motion设备的代码与上面的代码集成。

如果您使用这两点中的任何一点回复都没关系。 对不起,我无法发布任何代码,因为我对系统本身的基于PowerPoint的编程完全不熟悉。

我对任何能让我完成任务的语言(C,C#,C ++,Java和Objective-C)持开放态度。 有一些信息/代码的sugesstions肯定会有所帮助。

我是一名PHP和JavaScript开发人员。 我希望我很清楚,不会被误解。

更新:

我找到了适用于Microsoft Office 2010/2013(C#)的LEAP Motion Controller插件 。

您找到的用于Microsoft Office的LEAP运动控制器加载项可能是将控制器与Powerpoint集成的最佳方式。

要开始使用它,你需要Visual Studio(看起来你需要2012)。 Microsoft 在Visual Studio中有Office Development的概述页面。

按照配置计算机以开发Office解决方案页面上的说明进行操作 。

下载Leap SDK for Windows,然后解压缩,然后在项目GestureLib.NET4.0的Visual Studio中,添加对LeapCSharp.NET4.0 dll的引用

对GestureListener.cs做一个简单的修复(在第44行使用IsEmpty)。

之后,您应该能够在Visual Studio中运行LEAP Motion Controller外接程序。 当你这样做时它会启动Powerpoint。

“VSTO”是您在此处使用的技术的名称,所以更多的是Google的“VSTO插件powerpoint”。

从加载项的源代码中 ,看起来您应该在Powerpoint的function区上看到一个按钮,用于启动和停止Leap。

看一下ThisAddIn.cs,一旦启动(通过按function区上的按钮),控制器应该分别通过移动到下一个/上一个幻灯片来响应左右手势: –

if (direction.ToString() == "Right") { Application.ActivePresentation.SlideShowWindow.View.Next(); LastGesture = DateTime.Now; } if (direction.ToString() == "Left") { Application.ActivePresentation.SlideShowWindow.View.Previous(); LastGesture = DateTime.Now; } 

GestureLib支持其他手势,您可以按照相同的模式执行某些操作。

如果您的目标只是与PowerPoint演示文稿交互,那么一个简单的解决方案可能是使用BetterTouchTool 。

它专为OS X设计,与Leap Motion控制器配合使用 ,它允许您将手势(由LM控制器捕获)映射到键盘快捷键,只要配置正确 ,它就可以在后台运行时工作。

基本上,应该可以在右箭头键上按下X手指向右滑动 – 这会将演示文稿推进到下一张幻灯片。 等等。

但是,如果您正在寻找程序化挑战/希望将其用于Airspace的应用程序,那么您可以使用类似Apache POI的Java API。

这是一个更复杂的解决方案,但它确实有它将在OS X上运行的好处 – 并且需要你使用一些代码:)。

似乎最简单的解决方案是按照将幻灯片导出到图像的示例。 您现在拥有一组图像 – 每张PowerPoint幻灯片一个。 这为您提供了很多选择,例如

  • 您可以将此数据视为内存数据库(和Web服务),然后返回到PHP和JS的舒适区域,并使用Leap Motion Controller的JS API捕获手势,从而实现在线图片库。
  • 您可以使用Java API开发纯Java解决方案,以从Leap Motion Controller捕获手势,并使用Swing / JavaFX或使用JSF在浏览器中显示数据。

一个非常简单的解决方案可能如下所示:

  1. 基于LeapMotion API构建基本的C#应用​​程序(您可以使用SDK中的C#示例应用程序 )。 必须允许此应用程序在后台运行。 它连接到LeapMotion并等待手势。 它提供了一个.NET远程处理界面( 这里有一个简单的例子),并为每个有趣的手势引发一个事件(参见这里有一个带有远程处理的事件的例子)。 当您使用示例应用程序时,只需将一些SafeWriteLine(...)替换为引发相应的事件即可。
  2. 使用C#构建办公室加载项(只需使用NetOffice ,它是免费的 )。 此加载项从步骤1启动后台应用程序,连接远程处理并等待事件。
  3. 当加载项获取事件时,它会触发PowerPoint中的相应操作(例如presentation.GotoSlide(presentation.Slides.Count) )。

PowerPoint和所有办公工具都支持visual basic .net宏。 只需为您的ppt文件编写一个vb宏,该文件识别手势并触发页面更改操作。 这就够了。

如果需要,可以在vb.net宏中集成跳跃动作的C#代码