我的应用程序需要在用户计算机上安装Kinect SDK(http://www.microsoft.com/download/en/details.aspx?id=27876)。所以我需要验证机器上是否已经安装了Kinect SDK。
如果没有,我希望安装程序提供给用户的官方下载链接......
有可能吗?如果是..我怎么能这样做?
提前致谢..
答案 0 :(得分:2)
到目前为止,官方Kinect SDK面向开发人员。 即使您可以检测到缺少SDK,用户也必须先安装Visual C#2010 Express版,然后再安装Kinect SDK。这是安装SDK的要求之一。我个人认为它已经太复杂了。
如SDK页面(http://www.microsoft.com/en-us/kinectforwindows/)所述,二月份这一切都将发生变化。我的猜测是微软正在发布一个Kinect运行时,以便用户可以安装它并运行Kinect应用程序(不需要Visual C#)。
答案 1 :(得分:1)
这是我在 App.xaml.cs中检查Kinect运行时的方法:
using Microsoft.Kinect;
using System;
using System.Linq;
using System.Windows;
namespace WpfApplication {
public partial class App : Application {
protected override void OnStartup(StartupEventArgs e) {
if (IsKinectRuntimeInstalled) {
base.OnStartup(e);
}
else {
MessageBoxResult result = MessageBox.Show("Microsoft Kinect Runtime 1.8 is required.\nClick \"OK\" to download Microsoft Kinect Runtime 1.8 from Microsoft's website.",
"Kinect Runtime required",
MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK) {
System.Diagnostics.Process.Start("http://www.microsoft.com/en-us/download/details.aspx?id=40277");
}
}
}
public bool IsKinectRuntimeInstalled {
get {
bool isInstalled;
try {
TestForKinectTypeLoadException();
isInstalled = true;
}
catch (TypeInitializationException) {
isInstalled = false;
}
return isInstalled;
}
}
private void TestForKinectTypeLoadException() {
KinectSensor kinectCheck = KinectSensor.KinectSensors.FirstOrDefault();
}
}
}
受this post的启发。
我正在使用Kinect SDK 1.8和.NET 4.5。
据我所知,直到1.8版本,都没有要检查的注册表项。
也可以将Kinect Runtime Redistributable捆绑到安装程序中并在安装过程中执行它,例如通过自定义操作。依赖这种方法我有两个问题:
答案 2 :(得分:0)
可以让ClickOnce安装程序检测目标计算机是否安装了Kinect运行时(请注意,通常只需要运行时,而不是完整的SDK)。为此,您需要将Kinect运行时设置为应用程序的先决条件。
有关如何执行此操作的详细信息,请参阅https://bitbucket.org/malingo/kinect-runtime-bootstrapper。