Delphi
RadStudio
Windows10
cppBuilder
UWP

Windows 10 SがMSDNで公開されたのでインストールしてDelphi/C++BuilderでビルドしたUWPアプリを実行してみる

2017年6月に Delphi/C++Builderで作成したUWPなアプリをWindows 10 S相当の制限モードで実行できるかどうか試してみる という記事を書きましたが、この時点では Windows 10 S が MSDN で公開されていませんでした。ですのでマイクロソフト様が公開しているポリシーファイルを用いて同等の権限縛りとなるようにしてみたわけです。

しかし2017年7月末にMSDNでWindows 10 Sのインストール用ISOファイルが公開されましたので、これを用いてネイティブな Windows 10 S 上で動作確認してみました。

2018/07/12 追記
Windows 10 Sと同等の制限モード はWindows 10 1803 からは設定変更により利用できるようです。この手順については下記の
URLを参照してください。
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/windows-10-s-enable-s-mode

Windows 10 S インストール時の注意事項

インストール自体は普通の Windows 10 と大きく違う点は無いと感じましたので、インストール手順の詳細は省略します。

ただし Windows 10 S を仮想マシンにインストールする場合は、仮想マシン向けの各種補助ツールが導入できないことに注意してください。考えてみれば当たり前の話なのですが、Windows 10 S ではストアアプリ以外の実行が制限されているのですから、各種補助ツールの実行よりも前段階の話として、そもそもインストーラ自体が実行できないわけです。

このことにより仮想マシン向けのドライバインストールも制限されます。最近の仮想マシン環境では補助ツールとドライバがインストーラで一括導入されますが、そのような作業も行えません。ただしVMwareのように、インストーラに含まれるドライバを抽出できるなら手作業での導入は可能です。ドライバの抽出手順は VMware の KB に説明されています。

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2097834

しかしそれを行うにしても、当然ながら Windows 10 S 以外の環境で抽出せねばなりません。また抽出されたドライバを仮想マシンに受け渡す操作をホストーゲスト間のコピー&ペーストで行うことはできず、おそらくはUSBメモリやUSBハードディスク、あるいはCD-RやDVD-R経由で受け渡すのがもっとも簡単な方法かもしれません。

なお、他の仮想化ソフトウェアで同様の作業が行えるかどうかは調べておりません。

動作確認

このスクリーンショットには、下記4つを表示しています。

  • 設定アプリでの Windows エディションの表示
  • デバイスマネージャーでのディスプレイアダプタがVMwareであることの確認
  • diskpart.exe を実行した状態
  • Delphi/C++Builder でビルドしたUWPなアプリの例として「かんたんスライドパズル」の実行時の画面

image.png

ここで実行している「かんたんスライドパズル」は以下のURLで入手できます。

https://www.microsoft.com/store/apps/9nblggh40lbr

なお、このアプリを Windows Store で公開するまでの顛末は @kazaiso さんの記事 Desktop Bridgeアプリ を Windowsストアへ申請・登録して公開する手順 で詳しく説明されていますので、興味のある方はこちらもお読みください。

スクリーンショットの話に戻すと、diskpart.exe はコマンドプロンプト同様の黒い画面なので大変紛らわしいのですが、これはコマンドプロンプトではありません。そして UWP ではなく exe ですけど実行できています。従って Windows 10 S は実行できるアプリが絶対に UWP だけ、というわけでもなさそうです。ただしこれはあくまで OS に付属のアプリに関する例外事項なのでしょう。

なお、前回の記事で書いたことと重複しますが、この実験の結果は「Delphi/C++Builder で作成したアプリや、その他のツールで開発したアプリを Desktop Bridge でUWPに変換すれば Windows 10 Sですべて動く」ということを意味してはいません。開発したアプリが Windows 10 S で動作するかどうかは、どのような開発ツールを使うにせよ、個別の検証は当然必要です。