【问题标题】:Writing custom code for PowerPoint using leap motion?使用跳跃动作为 PowerPoint 编写自定义代码?
【发布时间】:2013-08-28 06:56:49
【问题描述】:

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

我在 Google 上搜索,在 Leap Motion 论坛上发布了一个问题,但没有成功。我主要担心的是:

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

  2. Leap Motion device 的代码与上述代码集成。

如果您回答两点中的任何一个都可以。很抱歉,我无法发布任何代码,因为我对系统本身的基于 PowerPoint 的编程完全陌生。

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

我是PHPJavaScript 的开发人员。我希望我是清楚的,而不是被误解。

更新:

我找到了LEAP Motion Controller Add-ins for Microsoft Office 2010/2013 (C#)

【问题讨论】:

  • 如果标记好,请随时更正标记,
  • 嗨,here 似乎可以找到有用的信息、源代码和/或合作者。
  • @razcor:thx,但是 mac 有什么东西吗..标记是否正确?
  • @razcor:我怎样才能让 c++,python,java SO 的人看到这个问题,我想我需要超过 5 个标签..
  • 我刚刚重新标记了你的帖子!不知道目前有没有涉及Mac Os X、Leap Motion和MS Office的开源项目,你可以在哪里找到信息。

标签: c# visual-studio-2010 powerpoint desktop-application leap-motion


【解决方案1】:

您发现的LEAP Motion Controller Add-ins for Microsoft Office 可能是将控制器与 Powerpoint 集成的最佳方式。

要开始使用它,您需要 Visual Studio(好像您需要 2012)。 Microsoft 有一个Office Development in Visual Studio 的概述页面。

按照Configuring a Computer to Develop Office Solutions 页面上的说明进行操作。

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

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

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

“VSTO”是您在此处使用的技术的名称,因此更多信息,请参阅 Google 'VSTO add-in powerpoint'。

source code for the 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;
            }

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

【讨论】:

【解决方案2】:

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

它是为 OS X 设计的,它与 Leap Motion Controller 一起工作,它允许您将手势(由 LM 控制器捕获)映射到键盘快捷键,只要它是 configured correctly,它就可以在后台运行时工作.

基本上,应该可以将 X 指的滑动映射到右侧,就像按下右箭头键一样 - 这会将演示文稿推进到下一张幻灯片。以此类推。

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

这是一个复杂得多的解决方案,但它确实具有可以在 OS X 上运行的好处 - 并且需要您处理一些代码 :)。

似乎最简单的解决方案是遵循exporting the slides in to images 的示例。您现在拥有一组图像 - 每张 PowerPoint 幻灯片都有一个图像。这为您提供了很多选择,例如

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

【讨论】:

  • 这个应用程序的“更好的触摸工具”能否让我控制我的 ppt 幻灯片,何时打开以及如何完成映射。我要求您提供一些详细的答案。我们有类似的应用程序吗也适用于windows?你之前做过leap程序集成吗。thx
  • 我相信是的。我没有 Mac,所以我不能 100% 确定,但我的一个朋友已经将它与他的 Leap Motion 控制器一起使用,并发现它可以很好地集成。它是免费的,因此值得下载并简单地试用它。从网站来看,应该可以设置到按键的映射,然后让它在后台运行。没有适用于 Windows 的端口,而且似乎也不可能有。 In my free time I'm experimenting with Leap Motion gesture integration
【解决方案3】:

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

  1. 基于 LeapMotion API 构建一个基本的 C# 应用程序(您可以使用来自其他 SDK 的 C# example app)。必须允许此应用程序在后台运行。它连接到 LeapMotion 并等待手势。它提供了一个 .NET 远程接口(参见here 的简单示例)并为每个有趣的手势引发一个事件(参见here 的远程事件示例)。当您使用示例应用时,只需将部分SafeWriteLine(...) 替换为引发相应的事件即可。
  2. 用 C# 构建一个 office 插件(只需使用 NetOffice,它是 free)。此插件从第 1 步启动后台应用,连接远程处理并等待事件。
  3. 当加载项收到事件时,它会触发 PowerPoint 中的相应操作(例如presentation.GotoSlide(presentation.Slides.Count))。

【讨论】:

  • 嘿,谢谢你的答案,但如果可能的话,你能在你的答案中添加一些细节吗?你以前构建过一个跳跃应用程序吗?
  • 我是开发者计划的一员。但我没有公开可用的跳跃运动应用程序(还)。
  • 嗯,我目前正在学习 c#,这在 python 中是否也可能......我的意思是没有任何浏览器......所以我理解答案中提到的大部分部分......但是如果我需要一些帮助,如果可能的话,你会……通过邮件或聊天吗?你的建议和 jsonplutext 的建议是一样的吗……他推荐的是关于 VSTO 的……
  • 对于 Office 插件,您将需要 DotNET,但您可以尝试使用带有 NetOffice 的 IronPython (ironpython.net)。对于 LeapMotion 部分,只需查看 python 示例 (developer.leapmotion.com/documentation/Languages/Python/Guides/…)。您的 Python 程序可以导出 WebService 或使用 ZeroMq (zeromq.org),而不是远程处理。
  • 但如果我不想使用任何互联网,那么在 python 或 c# 上可能是最好的..
【解决方案4】:

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

如果你愿意, 跳跃动作的 C# 代码可以集成到您的 vb.net 宏中

【讨论】:

  • 谢谢你的回答,但老实说,我能更详细地了解你在说什么吗?
  • PowerPoint 幻灯片可以包含 Visual Basic 代码:例如,您可以执行代码来响应事件(例如单击)。
  • chat.stackoverflow.com/rooms/36636/…你能加入聊天吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 2021-04-07
  • 1970-01-01
  • 1970-01-01
  • 2023-02-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多