Это, как я могу проверить для Kinect Время воспроизведения, в моих App.xaml.cs:
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 нет ключа для проверки.
Также возможно объединить Runtime Kinect Ristrime в ваш установщик и выполнить его во время установки, например. с помощью пользовательского действия. У меня есть две проблемы с использованием этого метода:
- Распространяемый 1,8 ~ 120 МБ, «слишком beaucoup».
- Среда выполнения может как-то удалиться или сломаться через некоторое время после установки. Если у меня нет этой проверки при запуске, мое приложение будет необъяснимо аварийно (для непрофессионала).
Существует очень вероятный ключ реестра, который вы можете проверить, но я не уверен, где его найти. Возможно, GUID, который вы можете извлечь из установщика SDK? Но, как говорит Андрей ниже, вы, вероятно, захотите подождать, пока они не выпустят время исполнения. – Rup