デスクトップアプリでWindows Runtime APIをコールする(センサーとか)
前から、デスクトップアプリからWindows Runtime API(の一部)を呼び出せるのは知っていたのですが、最近、本当にコールする必要が生じたので、やり方をここに書いておきます。
※この投稿はストアアプリより、デスクトップアプリの方が良いです…という話ではありません。使えるWinRT APIは一部だし、セキュリティ、パフォーマンスなどストアアプリで使った方がいいので、なるべくストアアプリを使うことをお勧めします。
Windows Runtime APIを使おうとするのは、Visual Studioで、”Windowsデスクトップ”→”WPFアプリケーション”プロジェクトテンプレートで作ったプロジェクトです。このプロジェクトは本来.NET FrameworkのAPIを使用します。
プロジェクトファイル(C#なら*.csproj)をテキストエディタ等で開きます。
<Project>...</Project>という記述がありますね。その中に<PropertyGroup>…</PropertyGroup>という定義がいっぱいあります。これらに並べて、
<PropertyGroup>
<TargetPlatformVersion>8.0</TargetPlatformVersion>
</PropertyGroup>
を入れます。
プロジェクトをVSで再度開きます。
参照設定に、以下のパスに存在する、Windows.winmd というファイルを追加します。
C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral
※32ビットOSの場合は、”Program Files\Windows Kits…
これで設定は終わり。
例えば、加速度センサーなら、
var accelerometer = Windows.Devices.Sensors.Accelerometer.GetDefault();
と、こんな風に取り出すことができます。但し、イベントを”+=”の様な普通の形式では使うことはできません。
Comments
Anonymous
March 10, 2015
best one. So helpful.Anonymous
March 18, 2015
The comment has been removed