« 2012年4月 | トップページ | 2012年9月 »

2012年8月

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)

Silverlight5アプリケーションの作り方(3)

さて。

SilverlightアプリケーションはXAMLベースだから、ほぼWPFアプリケーションなんでしょ。と、思いきや、これが結構違うということが判ってきた。.NET Frameworkと.NET Framework for Silverlightの差が、厳然たる差異として立ちはだかっているのだ。

今回は、ActiveXコントロールを使ってみたいと思う。ActiveXなど、.NET以前の20世紀のテクノロジーであるが、いまだにActiveXコントロールとして作った資産が世界中にあるのだから仕方ない。ソースが手元にあればC#に書き直すという方法もあるが、メンドクサイのである。Microsoft社純正の技術であるSilverlightから簡単にActiveXを呼び出せる方法があるはずだ。

Windows Formsの時代(.NET1.0~2.0)は、VisualStudioにtlbimp.exeというツールがあり、ActiveXコントロールのラッパークラス(AxHostクラスを継承したクラス)を自動的に生成でき、それをWindowsFormに貼り付けることで利用できた。WPF(.NET 3.0以降)では、WindowsFormコントロールを貼り付けるためのラッパー的クラス(WindowsFormsHostクラス)があり、それをWPFのGridに貼ることで、「ActiveXコントロール→AxHost→WindowsFormsHost→XAML」という流れで連携できる。詳しくはコチラ

SilverlightもXAMLベースだから、WPFアプリと同じ方法でイケるのでは。。。そんな希望は、.NET Framework for SilverlightにWindowsFormsHostクラスが無いという事実によって打ち砕かれた…

Windowsformshost
↑"WindowsFormsIntegration"アセンブリが無くて参照追加できず、狼狽するのみ。。。

とはいえ。ActiveXコントロールはもともとHTMLページに貼り付けて使えるものだから、最悪そうすればなんとかなるんです。「ActiveXコントロール→HTML→JScript→SilverlightのXAML」という連携でね。うん、確かに動くけど、これも結構メンドクサイぞ。。。

…やりたいことはできるけど、イマイチしっくりこないよな~。ActiveXなんか早く捨てろってコト。。。?大事なロジックならC#に書き直すか、C++/CLIに書き直した方がいいかもね。

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

Silverlight5アプリケーションの作り方(2)

Silverlightアプリケーションの開発方法その2。

一通りの技術的ドキュメントはMicrosoft公式の

Silverlightデベロッパーセンター

に充実していらっしゃいます。「Silverlight4」と書いてあるが、そのまま5に読み替えても、問題ないのカナ?その辺は別途調査しまーす。一緒なんだろうけど、たぶん。(と言いながらいつも罠にハマる)

.NET Framework for SilverlightやXAMLについては、.NET Framework一般の知識をそのまま適用して考えていいんじゃなかろーか。

特にSilverlight独特って点は、「ブラウザで動かす想定」だというところにあると思うぞ。たとえば、Silverlightアプリケーションを埋め込むHTMLページ内のJavaScriptとどうやりとりするか、とか、Silverlightアプリケーション起動時のスプラッシュスクリーンをどうするか、とか、セキュリティをどうするか、とか。

昔流行ったJavaアプレットみたいだな~。似たことをやろうとしているので当たり前なのだが。

「似たこと」…?って、Silverlightが何のために作られ、何に使われる想定の技術なのか、意外とわかりにくかったりする。その辺は技術ドキュメントに現れないのでプラットフォーム選定の時に結構、不適切な選択をしちゃったりする。ここらでちょっと整理しとく。

(なお、これは2012年8月時点の内容デス。未来の人はもっと新しい記事を読んでください。)

まず、マイクロソフトさんがSilverlight1.0をリリースした2007年9月の時点では、SilverlightはRIA(つまりブラウザでカッコイイアプリケーションを動かす)を実現するためのものだった。らしい。その頃はSilverlightという新しいキーワードは知ってたけど使ってなかったです。なぜか?Adobe Flash全盛だったしAJAXも簡単にできるようになってきて、あまり必要性感じなかったです。それでも、Silverlightはバージョンが上がるにつれイイ感じになりました。

ところが、時代が変わりました。2010年になって、HTML5が俄然人気。もう、これからの時代、ブラウザで動くアプリケーションはHTML5ですよ、と皆が言い始めた。「たしかに。だけど、SilverlightやFlashはどうなるんでしょ?」となるわけで。そんで、

マイクロソフトが戦略変更

となりました。Silverlightはクロスプラットフォーム(WindowsでもMacでもスマホでも動くよ)にはならないので、ほかのマイクロソフト製品との連携やWindows Phoneのプラットフォームと位置づけますわ、となったわけです。

HTML5とSilverlight

PCやAndroidやiPhone、iPad等でも動くカッコイイWebアプリケーションを作るためのプラットフォームはHTML5で決まり。マイクロソフトさんもそう言っているわけです。周りからは「Silverlightはバージョン5で終わりなのかもね」と思われている有様です。動画を表示するのに何のプラグインもプログラミングも要らないHTML5には敵わないわけです。

そうはいっても、2012年8月時点では、IEの最新バージョンである9においてもHTML5のサポートは限定的だし、Silverlightアプリケーションはすでにネット上にたくさんあって、Silverlight5自体もあと9年ほどサポートされるので、「あと2年程は」Silverlightが選択されるべきRIAプラットフォームじゃないかと思う。HTML5の勢いが今のペースでいけばね。

んじゃあHTML5アプリケーションはどう作るの?…今後調べマス。。。

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

WPS、それは無線LANルーターの設定

無線LANルーターを変えた。

新しいルーターの説明書によるとWindows7ではWPSで接続できるから、長い暗号キーは入力しなくて良いってことなんだけど、実際にWindows7でワイヤレスネットワークの一覧で[接続]ボタンをクリックしても、

Wps
↑こんな画面は出ずに、

Wps_2
↑こんな画面になり、無線LANルーターのWPSボタンを押しても、設定が完了しない。なんてことがありました。

こんな時は、Windows7のPC(ノートPC)を無線LANルーターのすぐ近く(50cm以内ぐらい)に持って行くと、うまくいくよ。2mぐらい離れると、もうダメでした。。。

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

Silverlight5アプリケーションの作り方(1)

Visual Studio 2010 SP1で新規Silverlightアプリケーションを作成しようとすると、 Photo

Silverlight


「最新のSilverlightが必要です。」のようなメッセージが表示される。そのダイアログにあるリンクをクリックするとSilverlight_Developer.exeがダウンロードできるのだが、それをインストールしても、新しいSilverlightアプリケーションの作成ウィザードでSilverlight5が選択できない(リストに現れない)。

5

↓これをダウンロードしてインストールする必要があるぞ!

Microsoft® Silverlight® 5 Tools for Visual Studio® 2010 SP1

Silverlight5toolsforvs2010

インストール完了後、Visual Studioを起動してSilverlightアプリケーション作成の手順をもう一度やると、

5_2

↑やっと「Silverlight 5」が選択肢に出てきた。

★"WCF RIAサービス"が何なのかはまた今度。。。

Photo_2
さて、[新しいSilverlightアプリケーション]のウィザードが終わったら、こんな画面が出たぞ。

Photo_3
ツールボックスを表示させて

Gui
デザインの画面にドラッグ&ドロップするわけですな。
こうして真っ白なキャンバス(Grid)にお絵描きします。

Photo_4
Gridをクリックして、プロパティ一覧でBackgroundの▼ボタンをクリックすると、Gridの背景色を変えられるぞ。他にもいろいろなプロパティがある。
同様に、貼り付けたボタンなどのプロパティも変えられる。

こうやってマウス操作とプロパティの入力でいとも簡単にGUIのデザインができてしまうのがVisualStudioのいいところ。そうしてデザインしたGUIレイアウトの情報はどこに保存されるかというと、デザインペインの下に表示されているXAMLペインに表示されているこの情報、これです。今、配置したボタンやテキストボックスのレイアウト、Gridの背景色なんかが自動的にXAMLに反映されていますね。XAMLは初心者にとってはHTMLのように見えますが、同じようなものだと理解していいでしょう。XAMLを直接書いても、マウスでデザインした時と全く同じGUIができます。

さぁ、Gridに配置したボタンをダブルクリックします。
Onclick
予想通り、クリックイベントのハンドラコードが表示されました。
ここに

textBox1.Text = "Hello!";

と入力します。

[デバッグ開始]ボタン押しま~す。
Photo_5

ブラウザが起動して…
Photo_6
おおお!Silverlightアプリケーションが動きました!

<今日のまとめ>
Silverlight特有の話がまだこれから出てくるわけですが、
とりあえずアプリケーションの新規作成、GUIデザイン、コーディング、デバッグ実行の方法は、簡単だということがわかりました。普通のexe形式のアプリケーション(Windows Formsアプリケーション)やWebアプリケーションと、全く同じ方法ですね。GUIのデザイン画面の初期画面の見た目がちょっと違うぐらいで。

(2)へつづく。。

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

« 2012年4月 | トップページ | 2012年9月 »