Windows8

Windowsストアにより多くのアプリを表示させる方法。

Windows8のタブレットやPCを購入すると、最初からインストールされていることの多いアプリ、"Cut the Rope"。タッチ操作でロープを切る軽快なゲームアプリで、Windows8の発売前からWindows8用アプリとして広く知られている。ところが、である。このアプリがインストールされていないPCに、Windowsストアからインストールしようとしても、ストアに現れないのである。

Cuttherope
"cut"で検索しても、出てこないよ…

だけど、 "Cut the Rope"というアプリがプレインストールされているPCがあるのだから、このアプリは間違いなくWindowsストアに登録されているのだ。

じゃあなんで出てこないの?というと、それは言語の問題だ。

Windodwsストアアプリには、そのアプリがサポートする言語が明示されている。(アプリが「サポートする」と宣言しているすべての言語において正しく表示されなければ、マイクロソフト社の審査に通らないので、ストアアプリとしては登録されない。)

Photo
ストアアプリの[詳細]に、サポートする言語が表示されるゾ。

Photo_2
複数の言語に対応したアプリもある。

そして重要なのが、PC側のWindows8にも、「使用する言語」の設定があるってことだ。既定では「ストア」に表示されるアプリは、PCが「使用する言語」のアプリだけなのだ。PCが使用する言語の設定を見てみよう。

Photo_3
デスクトップのタスクトレイにある日本語アイコン(Jのマーク)を左クリックし[言語設定]をクリックする。(もしくは、コントロールパネルで[言語の追加]をクリックしても次の画面を出せます。)

Os
日本語版Windows8では、最初こんな感じで「日本語」しかないと思います。[言語の追加]をクリックしてみましょう。(後で簡単に削除できるので、試して損はないです。)

Os_2
Windows8っていろんな言語で表示できるんだなぁ~っと感心しつつ、[英語]を選択して[開く]。

Os_3
ん?同じような画面が出たぞ…と思ったら、「英語は英語でも、どの英語か」を選ぶ画面でした。日本人にとっちゃぁどれも同じように思いますが何かと違うのでしょう。とりあえず[英語(米国)]を選んで[追加]します。(アプリの作者ならば、これが"en-US"だと言った方がわかりやすいかもですね。)

Os_4
何らかのダウンロードやインストールが行われるのかと思いきや、即座に、いともあっさり言語が追加されました。ついでに韓国語も追加してみたので、3言語表示されています。このとき、日本語を一番上にしておきましょう。それがメインの言語ですからね。(この画面で言語を選んで[削除]をクリックすれば言語を削除できます。)

さぁ、ストアはどうなったかな、と。ワクワク。。。

Photo_4
おお、明らかにアプリの数が多く表示されている!これは期待通り英語アプリが表示されているようです!さっそく"cut"で検索してみます。すると…

Cuttherope
最初に検索した時よりも多くのアプリがヒット。お目当ての"Cut the Rope"が出てきたよ~!コレコレ!

Cuttherope_3
"Cut the Rope"の詳細を見てみると、やはり日本語をサポートしていないんですね。英語はサポートしてるので、今、出てきたわけです。

ってことは、より多くのアプリを楽しみたいってひとには、Windowsに英語を追加してみるのが良いのかな、と。

■■■

もちろんそれもいいんですが、Windowsの設定でなく、ストアの[設定]の[基本設定]で[選んだ言語のアプリを見つけやすくする]を「いいえ」にすれば、多くのアプリが表示されるんですよね。こっちのほうが楽でしたね。。。

10

11

13

お試しあれ。

| | コメント (0) | トラックバック (0)

Windows8を脱獄させる方法

Windows8では、デスクトップアプリは今まで同様自由にインストールして使えるが、Windowsストアアプリ(旧称メトロスタイルアプリ。ModernUIアプリ、Windows8アプリとの表記もアリ。早くわかりやすい統一用語がほしいよ。。)に関しては、Windowsストアからインストールするしかない。Windowsストア以外からアプリをインストールすることは原則禁止なのである。Windowsストアでアプリを公開するにはMicrosoft社の審査を通過しなければいけないので、安全なアプリだけが公開されており、インストール可能になるというメリットがある。

それがMicrosoftさんの方針なのだからIT技術者も一般ユーザーもみんな、それに従うことになる。その戦略は賛否両論あるが、ここでは受け入れることにする。iPhoneも野良アプリは禁止で、AppStoreからアプリをインストールするしかないしね、Androidでも、おそらくほとんどの機種で、既定で野良アプリのインストールは禁止の設定になっているよ。

さて、本題に入りますが、技術的に考えた時、どうやって野良アプリのインストールができない仕組みになっているんだろう?という疑問が湧くわけです。iPhoneでは、ユーザーは管理者権限がないので勝手にアプリをインストールすることはできない。Androidでもユーザーは管理者権限が無いので、好き勝手なことはできないようになっている。それで、セキュリティホールを突いて管理者権限を獲得し、許可されていない動作を行うように改造(いわゆる「脱獄(jailbreak)」)をして、野良アプリを入れたりする人もいる。

ところがですよ、Windows8では、ユーザーはローカルコンピューターの管理者権限を持ってるわけです。Windowsでは当たり前のことですね。管理者権限があれば、なんでもできるわけです。レジストリを書き換えたり、隠しファイルを閲覧したり、あらゆるオブジェクトの所有者権限を得られるしシステムファイルを消すこともやろうと思えばできるわけですよ。それでどうやって脱獄できないようになっているの?と。

色々とWeb資料をあさっていると、何となくそれがわかってきました。

Microsoftさんは、野良アプリのことをサイドローディング(sideloading)と言っています。サイドローディングとは「サイドロードすること」。「サイドロード」?聞きなれない言葉です。。調べてみると、「ダウンロード」や「アップロード」をもじった言葉で、ダウンロードやアップロードのようにリモートからコピーするのではなく、手元のDVDやPCなどからコピーするっていうニュアンスの言葉でした。なるほど。。

そして本題の疑問へ。「Windowsストアアプリのexeを、管理者権限でコピーさえすれば、サイドロードできんじゃねぇの?」と。そこで試に、Windowsストアアプリのexeを探して(\Program Files\WindowsAppsの下にあるヨ)エクスプローラーでダブルクリックして起動してみる。すると…
Needappcontainer_3
こんなメッセージが出て、起動できないんデス。。。WindowsストアアプリはアプリコンテナーというOSの機能からしか起動できないってことですね。(そうしないとサンドボックスにならないもんね!)

そしてアプリコンテナー(ProcessExplorerで見るとDComLaunchというサービスのようです)から起動してもらうためには、アプリをちゃんとインストールする必要がある訳です。ちなみにアプリのインストールのことをなぜかMicrosoftさんは「登録」(原文ではRegister)という用語で表現しています(単にレジストリキー等を登録するというニュアンスでしょうか)。それで登録(インストール)して、しかるべきレジストリキーを登録したりしないといけないんですよね。さらに、アプリは電子署名されていないと登録できないんです。そうしておかないと、アプリコンテナーから起動してもらえない、つまり、スタート画面から起動できないってことです。

それじゃあ、アプリのファイルをコピーしてきて、登録すればサイドローディングできるんでしょ、と思うわけです。さっそく自作したWindowsストアアプリのパッケージを、別の(アプリ開発環境をインストールしていない)Windows8にコピーし、手動で登録してみます。登録するには、Windows PowerShellを管理者権限で起動し、Add-AppxPackageコマンドレットを使います。ところが。。。

Addappxpackage
この通り、登録は失敗します。当たり前ですね。野良アプリ禁止なんですから。登録、つまりインストールが防がれる仕組みを目の当たりにできました。

ところが、これじゃぁ、開発者が自作のアプリをテストできないじゃないですか。自作アプリはWindowsストアに登録する前に起動できる必要があるわけで。そのために、開発者のテスト用インストールができる仕組みも用意されています。それが、エラーメッセージの中にも書いてある「開発者用ライセンス」です。
開発者用ライセンスが無いことを確認してみます。

Nolic_3
Get-WindowsDeveloperLicenseコマンドレットで見ると、確かに無いです。そこで、開発者用ライセンスをインストールしてみます。これには、Show-WindowsDeveloperLicenseRegistrationコマンドレットを使います。

Showlicdl_2
こんなダイアログが出てきました。[同意します]。

次に、Microsoftアカウントを入力して[サインイン]。
Showlicdlg2_6
すると。。。

Showlicdlg2_4

Showlicdlg3
いともあっさり、開発者用ライセンスが取得できました。さ~さぁ~、いよいよサイドローディングするぞ~。Add-AppxPackageするぞ~。

Addappxpackage_3
こんな感じでなぜか登録進捗がPowerShellウィンドの上の方に青緑背景の黄色文字で表示され、登録成功!できましたできました、人間にもこんなことできました!

Addappxpackage2_3
スタート画面にタイルが出てきましたぞ!もちろんクリックで起動できまーす。

正式なインストール方法は、以下の4つがある。

(1)Windowsストアからダウンロード

(2)VisusalStudioから(テストのために)起動。(これは、内部的にテスト用パッケージがインストールされて、それが起動される。無償で取得できる開発者用ライセンスのインストールが必要。)

(3)VisualStudioでローカル用パッケージを作成して、上記のように手動インストール(ただし開発者用ライセンスのインストールが必要)。

(4)正式なサイドローディング。(Windows8 Enterprise Editionで、Active Directoryドメインに参加して、ドメインのポリシーでサイドローディングが許可されており、信頼されたルート証明書機関から続く証明書で署名されたアプリをインストール)

まとめると、

メトロアプリはOSのアプリコンテナーから起動する必要があり、そのためには登録(インストール)が必要。Windowsストアで認証されていないアプリのインストールには、開発者用ライセンスが必要。

最後に、脱獄方法のまとめ。

(1)PowerShellのShow-WindowsDeveloperLicenseRegistrationコマンドレットで開発者用ライセンスをインストール

(2)PowerShellのAdd-AppxPackageコマンドレットで野良アプリを登録(インストール)

これだけ。

もちろんこれはアプリ開発者のテスト用なので、自分が自信を持って信頼できるアプリ以外は入れないこと!変な野良アプリを入れてウィルスにかかったり個人情報が漏えいしたりその他大変なことが起こっても誰も助けてくれないので、デスクトップアプリ同様にウィルスチェッカーを入れるなどの自己防衛が必須となるっすよ。

ちなみに、以下のような改造による脱獄は、やる意味もないし、もしできたとしてもライセンス違反となるのでご注意を。

(1)正式なインストールなしで動くようにする、つまり、アプリコンテナー相当のものを自作してアプリのexeを起動するなど

(2)正式なインストールと同じ結果を作り出す、つまり、アプリコンテナーが必要とするレジストリキー等を自力で書き込むなど

もし将来、OSの不具合を突いて、改造脱獄できるようになったとしても、その不具合を修正するパッチを充てるまではWindowsストアからのアプリインストールができなくなるなどの対策がなされるでしょうけどね。開発者用ライセンスは不要なら入れない、不要になったら削除するのが望ましいです。

Windowsストアアプリは、安全なアプリしかインストール&起動できないので、安心してWindows8をエンジョイできますね。

| | コメント (3) | トラックバック (0)

Windows8の使い方(その3)

Windows8の新機能、検索機能。

アプリが多くなったとき、すべてのアプリ一覧から探してもいいけど、検索してサッと起動したいときってあるよね。PCの設定を変えたいけど、コントロールパネルのどこにアイコンがあったか探したり、設定項目を探したりするのに時間がかかることもあるよね。ファイルを検索したりWebで検索したりすることも日常的によくあるよね。そんなこんなが、全部まとめて簡単にできてしまうのですよ。

やり方は超簡単、スタート画面で、いきなり検索したい言葉をキーボードで入力するだけです。たとえば、リモートデスクトップ接続がしたいとしましょう。

Win8init_2
このスタート画面の状態から、キーボードで「り」と入力します。

Win8search_apps
すると、検索メニューが出てきて、「り」ではじまるアプリの候補が出てきます。ここで、「リモートデスクトップ接続」のアイコンをクリックしても起動できるし、検索キーワードに「リモート」まで入力して、候補が「リモートデスクトップ接続」だけになったところで、Enterキーを押しても起動できます。

ここで、実はアプリだけでなく、設定、ファイルも検索してくれるのです。おおぉ~、気が利くね!ってまぁ、これはWindows7のスタートメニューで[プログラムとファイルの検索]欄にキーワードを入力してアプリやファイル等を検索するのと同じ機能ですね。だけどWindows7だと検索結果が多い場合、別ウィンドウで検索結果リストを開くようになっています。それよりスッキリとしていてなんだか見やすくて、わかりやすいですね。

Win8search_config
画面の解像度を変えたいなぁ。そんなときはスタート画面で「解像度」と入力すれば、この通り。「Windows8であの設定はどこいった?」っていちいち調べなくていいんですよ、検索すれば出てきますから。

Win8search_files
ファイルの検索も、同じ画面で、[ファイル]をクリックするだけで結果が確認できます。

Win8search_games
そして、Windows8の便利なところは、この検索機能と、Windows8アプリ(Windowsストアアプリというか、メトロスタイルアプリと呼んでいたものたち)と連動してくれるところ!つまり、Webでの検索をしたいなら[Internet Explorer]か[Bing]を選べばいいんです。あと、Windowsストアでアプリを検索するにはどうしたらいいのかよくわからなかったんですが、この検索機能と連動しているので、[ストア]を選べば、Windowsストア内でアプリを検索できます。地図アプリもあるし、他には辞書アプリなんかをインストールしたら便利そうですね。

検索機能、スタート画面でいきなりキー入力すれば出てきますが、もちろんチャームの[検索]アイコンをクリックしても出てくるし、Windowsキー+Fでも出てくるよん。

| | コメント (0) | トラックバック (0)

WinRTとは?

Windows8で新しく導入されたWinRTとは一体なんだろう?という疑問に対してあまりスッキリとした情報が見つからなかったので、いろいろ調べた情報をまとめてみる。

WinRTは簡単に言うとAPIだ。まずはそういうことにしよう。それと、ネイティブコードだ、といろんなドキュメントに書かれている。COMだとも書かれている。COM(Component Object Model)については.NET以前からある技術なので説明は省略シマス。

今までのネイティブAPIといえばWin32ですよね。Win32は、あれですね、DLLの関数を直接呼び出すやつで、C言語の関数呼び出しですね。実体は\Windows\system32にあるDLL(advapi32.dllなど)でしたね。COMって、あれですね、実体は.dllや.ocxといった拡張子のファイルで、どこのフォルダにあっても良くて、インストールするときにレジストリにフィル名が登録される、と。呼び出すときにOSがレジストリを見て、読み込むファイルを決めたりその他のこと(どのスレッドで実行するとか)も決めてくれるものでした。COM自体はクラスのインスタンスになっており、Win32とは違い、オブジェクト指向言語にマッチしていました。

じゃぁWinRTって何なの?ってことですけど、実体は、\Windows\system32にあるdllファイルです。ファイル名はWindows.~.dllです。Windows.UI.dllとか。でも、これを直接呼び出すんじゃないみたいなんですよ。これを直接呼び出すんならそれはもうネイティブプログラミングです。

今までのCOMとWinRTの違うトコロは、これが.NETやJavaScriptからスルッと呼び出せるということらしいです。そのために、ネイティブ(C++)、.NET(C#、VB、他)、JavaScriptといった異言語が共通で解釈できる共通ヘッダファイル的なものができました。それが.winmdファイルです。winmd(Windows meta data)は、あれです、中のファイルフォーマットは.NETアセンブリと同じらしいんです。それで、.winmdファイルには、WinRTのクラスについての、クラス名やメソッド名、パラメータの型なんかのメタデータが入っている(そしてコードそのものは入っていない)わけです。.winmdファイルは\Windows\WinMetadataフォルダに入っています。

たとえばC#プロジェクトで.winmdファイルを参照すると、.NET Framework 4.5は.winmdファイルを解釈し、呼び出し先クラス/メソッドがあたかも.NETのクラス/メソッドかのように扱ってくれる(Visual Studioでインテリセンスが効くなどもその効果)ということです。実際にWinRTのメソッドを呼び出す際には、.winmdファイルの中にはコードはないわけなので、.NET Framework 4.5が実体ファイルを探しに行きます。WinRTのdllは、名前空間をファイル名につけることになっているので、どうも、呼び出し先クラスの名前空間をもとに、実体のdllファイルを探すようです。そうして、C#のプログラムがWinRTのメソッドをあたかも.NETメソッドのように呼び出せるってことらしいです。

JavaScriptからWinRT呼び出すときも、そうですね。JavaScriptは.NET Frameworkではなく、ChakraというIEのJavaScriptエンジンで動きます。Chakraが.winmdファイルを解釈したり、実体dllファイルを探して読み込んで、実体オブジェクトを取得するところをやってくれるようです。そーしてJavaScriptのソースコードからWinRTのメソッドがサラサラっと呼び出せるようですね。

そしてネイティブのC++からはそのまま直接WinRTを呼び出せばいいと。

これで、なんとなくWinRTがなんなのかわかってきました。たぶん。APIというより、ABI(Application Binary Interface)の仕組みという感じですよね。

| | コメント (1) | トラックバック (0)

Windows8の使い方(その2)

5.コントロールパネルの出し方がわからない

PCの設定を確認したり変えたりしようと思ったら、コンパネっすよね。でもどこいったんだろ。。再び途方に暮れる。。

Win8charm__3
Windows 8のコントロールパネルを表示する方法は、まず、デスクトップを表示し、マウスカーソルを画面右上(右下でも良い)角に押し当ててチャームを表示させ、そのままカーソルを下(または上)に動かし、[設定]アイコンをクリック!

Win8conpane_menu
設定メニューの中に[コントロールパネル]があるぞ!ここから、いつものコンパネを表示できます。
別の方法として、画面左下にマウスカーソルを押し当てて、スタート画面のアイコンが出たらそれを右クリックすると、よく使うメニューが出てきます。(Windowsキー+Xでも表示できるヨ!)

Win8startcontext
そのメニューに[コントロールパネル]があるのでそれをクリックしてもコンパネが出せるぜ。

Win8conpane
↑コレコレ!Windows 7のコントロールパネルにそっくりなWindows 8のコントロールパネル。見慣れたものを見るとホッとするね。(盾の絵が青一色になってるとか、「保護者による制限」が「ファミリーセーフティ」になってるなど微妙に異なりマスガ。。)

6.シャットダウンの仕方がわからない

今までの操作で、なんとかWindows 7時代と同じぐらいに使えるんじゃなかろーかと。さぁ、シャットダウンして終わろ。そんなアタナにまたしても試練が。そう、スタートボタンが無いからシャットダウンの方法がワカンネ。。。Windows 8ってどうやって終わるの?

Win8charm__4

↑チャームの[設定]をクリックしてぇ、

Win8owari_2
↑電源ボタンをクリックして[シャットダウン]をクリック!

別の方法として、デスクトップ表示中にAlt+F4キーを押すと、次のように見慣れたダイアログが出てきてシャットダウンできます。これは伝統的なやり方ですね。

Win8shutdown2

ほかにも新機能がてんこ盛りのWindows 8ですが、とりあえずここまでの操作で、一通り、今まで(Windows 7)と同じ操作ができるんじゃないでしょうか。新機能の紹介も今度したいと思いまーす。

| | コメント (0) | トラックバック (0)

Windows8の使い方(その1)

Windows 8 (RTM)を使ってみた。Developer Preview版の時は起動してすぐにBSoD(Blue Screen of Death=ブルースクリーン)になって使い物にならなかったので、今回がほぼ初めて使用するに等しい状態だ。

使ってみた第一印象は、まず、使い方がわからない!

Win8desktop
↑この後、どうしたらいいの。。。

 

これほどまでに仕様を変えてくるとは。。。基本的な動かし方もわからないなんたぁ、初めてスマホを使ったとき以来だぜ!うん。確かにWindows 8のUIはスマホに似ている。というか似せてあるんだよね~(そんぐらい調べてから使えって話もありますが)タブレットで使うときはすんなり使えそうだけど、マウスとキーボードで操作するときは、間違いなく戸惑うよ!

 

つーわけで使い方メモ。

1.使う以前にまず、用語を知る

Windows 7までの時から、用語が変わったもの、新しく出てきた用語があるのでチェック。

・スタート画面 … 最初に出てくる、左上に「スタート」と書いてあってタイルが並んでる画面のこと。原文はStart screen。↓コレ

Win8start

・サインイン … ログオンのこと。sign in。ログオフもサインアウトという用語に変わった。

・タイル … スタート画面に並んでるアイコンのこと。

・アプリ … 今までは「プログラム」って表記だったけど。スマホでもみんなアプリって呼んでるからそうなったのかな。原文はApps。

・Windowsストアアプリ … 今までメトロスタイル(Metro style)アプリって(マイクロソフトさん含めて)世界中の人が呼んでたもの。デスクトップアプリではないアプリ。「メトロ」という単語は使用禁止になったらしい。それにしても…いまだにMetro styleって書いてあるドキュメントだらけだよ。。

・ピン留め … Windows 7では[タスクバーにこのプログラムを表示する]と訳されていた機能。

2.スタート画面の仕組みがわからない

これは、アプリのショートカット集って感じ。アンドロイドのホーム画面みたいな感じ。タイルをクリックまたはタップ(以下、「またはタップ」は省略)すると、そのアプリを起動できる。スタート画面に表示したくないアプリは右クリックまたは長押し(以下、「または長押し」は省略)すると、[スタート画面からピン留めをはずす]で非表示にできるぞ。

Win8unpin_

3.デスクトップにスタートボタンが無い。「すべてのプログラム」はどこ行った?

 

スタート画面に「デスクトップ」タイルがあるから、すぐに、Windows 7に近いデスクトップを表示できる。その次に、アプリを起動しようと思ったら、スタートボタン(オーブとも呼んでた丸い玉)が無い!

Win8desktop_2
↑いったいどうやってメモ帳や電卓を起動するんだよ。。。トホホ。。と、途方に暮れる人が続出すると思われるYO!

 

今までのスタートメニューの「すべてのプログラム」に相当するものは、スタート画面(のタイルのないところ)を右クリックして、「すべてのアプリ」をクリックすると出てくるぞ!

Win8allapps_
↑こんな感じ。

って、デスクトップからスタート画面への戻り方もわからない…orz

 

スタート画面に戻るには、画面の右上(または右下)角にマウスカーソルを押し付けて、出てきたアイコン(チャームという)のWindowアイコンをクリックすればいいぞ。なおチャームはWindowsキー+Cでも表示できる。

Win8charm_

別の方法として、マウスカーソルを画面の左下の角に押し付けてスタート画面のアイコンが表示されたらクリックすることでもスタート画面に戻れる。

Win8tostart_

キーボードでWindowsキーを押すだけでも戻れるぞ!これが一番楽。

やり方はいっぱいあるけど、なんだか全部、隠しコマンドっぽいなぁ。。カーソルを角に押し付けるのは、マウスカーソルをもっともすばやく移動できる場所だからだそうな。

4.Windowsストアアプリ(メトロスタイルアプリ)の終わり方が分からない!

スタート画面でタイルをクリックしてアプリを起動したのはいいものの、フルスクリーンで表示されており、終了ボタンもないし右クリックしても終了メニューなんか出てこない。あ、そうか、さっきやったみたいにしてスタート画面に戻ればいいのか。いえ、違います。スタート画面に戻っただけでは、アプリは終わらない(裏で動き続ける)のだ。Androidスマホやタブレットでさぁ、アプリ起動中にホームボタン(家の形のボタン)を押してホーム画面に戻るような感じだねこれは。じゃぁ、どうやって終わらせるんだよぉぉぉ!と憤る人も続出しそうダネ。

Windowsストアアプリ(メトロスタイルアプリ)を終わらせるには、画面の一番上にマウスカーソルを持っていき、カーソルが手のひらの形になったところで、一気に画面の一番下までドラッグ&ドロップするぞ!

Win8metro_close_

またまた隠しコマンドですね。ところが、キーボードで終了させる場合は、伝統的な方法(Windows95か、もっと前だったか?からある方法)で終了できる。Alt+F4キーだ。

ちなみに、デスクトップアプリを終了させるとき、ウィンドウ右上の赤い×ボタンをクリックしますが、ウィンドウ左上の隅っこを(アプリのアイコンが表示されていればそのアイコンを)ダブルクリックしても終了します。Windows 3.1時代の操作の名残で、20年も続く伝統的な操作方法ですが、今となっては逆に隠しコマンドっぽいですね。

その2へ続く。。

| | コメント (0) | トラックバック (0)