Windows 7 RC インストールしてみた。

リリースされてから日数が経っていますが、
やっとこさ、いじる暇ができたようなので、
インストールをしてみることにします。

image 
DVDを入れると、最初にこんな画面が出てきます。
一瞬 Fedora のセットアップかと思いましたが、そうじゃないようです。

(Microsoft の美的センスがめっちゃよくなったような・・?

image
インストール をクリックすると、こんな画面が出て準備開始。
・・にしても、Fedora かな? と。思ってしまうほど、青を基調とした美しいセットアップ画面だこと。

image ライセンスっ
ベータのころは英語だったのに、すっかり日本語になってます。

image

インストールの種類。 Windows Vista からだとアップグレードできる。という話で、
Windows XP とかからはアップグレードできない模様。
(Windows 7 ベータはいけるかと思いましたが、これがなんと、エラーが出てアップグレードできませんでした。)

 

・・これ以降については、

http://journal.mycom.co.jp/articles/2009/05/09/windows7/001.html

この記事を見ていただけると大変ありがたいです。 さて・・インストールしてきます。

Vista 版 Bootvis

そんなわけで、ちょっと検索したらすぐヒットしましたので適当に書いてみることにします。

とりあえず、記事に入る前に「Bootvis」とはなんぞや。と言う方へ。
適当に言えば、起動プロセスを分析して、高速化までやってくれるツール。

XPの時にあったのですが、不具合があるだかですぐに公開停止されましたが、動かしてみて、未だに目立った問題に当たっていないので、平和なのかそれとも安全なのか。むー。

 

そんなわけで、もちろん Vista でもなんかやってみたくなるわけです。

かといって、レジストリクリーナーはやった後、必ず不具合が出てくるという苦い経験を何度も経験しているので、やりません。

あと、システムも別に重いって訳ではないですし、何となく、暇だからやってみたくなるわけです。

ダウンロード

とりあえず、Vista 版 Bootvis とくるのは
Windows Performance Analysis Developer Center
ここからダウンロードできる Windows Performance Tool Kit となります。

(右の真ん中あたりにある Downloads にある 「WPT Kit ・・・」からダウンロードできます。 ・・お使いのアーキテクチャはわかりますよね。

・・わからなければ x86 をとってくれば大丈夫だと思いますが、わからない人はやらない方がいいかもしれません。止まったときの責任が私にはもてませんので。

 

2009/10/22 修正:
どうも単体での公開をやめてしまったようです。

公式の文章を深くまでよく見れば、「Windows 7 SDK を取ってきてくれ」という内容が出ていますので、
Download details Microsoft Windows 7 SDK

こちらのリンクより、 Windows SDK をダウンロードしてインストールしてください。

 

SDKのインストール

image

必要最小限のインストールのみ(WPT のみをインストール出来るようにする。)とする場合は

image

このインストール設定でインストールを行います。

終了しますと、スタートメニューの(すべての)プログラム内に、
「Microsoft Windows SDK v7.0」 という項目。その下に「Tools」という項目が出来、
その中に「Install Windows Performance Tool Kit」という項目が存在しますので、
それをクリックしますと、WPFのインストールが開始されます。

 

インストールっ

image インストール開始。

インストールしますと、スタートメニューの(すべての)プログラム内に
「Microsoft Windows Performance Toolkit」 というメニューが作成されます。

 

最適化してみる

そんなわけで、コマンドプロンプトを 右クリック –> 管理者として実行 で実行する。

 

起動を高速化する場合は、

xbootmgr -trace boot –prepSystem

と入力して実行、

 

再起動を高速化する場合は、

xbootmgr –trace reboot –prepSystem

と入力して実行します。

 

image

image

この画面が出て、あとは何度か再起動されるのを待つ

やってみた結果

ログイン画面までの時間は変わりませんでした。(元々早かったことがあると思います。

ログイン後の、デスクトップまでの時間が短縮されたように感じました。

 

とりあえず、ネタ。ですが、起動時間が長いと感じている人は試してみてはいかがでしょうか。

MFC と WIN_VER

うーん。MFC には相当の裏がありそうだなぁ・・。 ・・。ども Mimura です。

STEP_M のフォントサイズ問題で悩んでいたのですが、
ソースコードは一緒なのに、なんでコンパイルした結果が違うのさ。と。

MFCは奥が深いです。Microsoft のパンドラの箱。のような気もしないでもないですが、
どうなんでしょうか。
少なくとも、SDKプログラミングばっかりやってた自分には、ちょっと謎です。

Vista の動作結果ではほぼ変わらないのですが、
XPで動かすとすばらしく変わります。なんで。と思うほど。

(同じソースコードですが、頭に WIN_VER 指定をかけてあります。)

 

現在公開中のもの (WIN_VER = 0x600 (Windows Vista))

image

XP 宣言したもの(WIN_VER = 0x501 (Windows XP or 2003))

image

なんでこー。ツールチップのサイズがここまで変わってくるのさー!!

・・そんなわけで、最初の修正の時にはツールチップのフォント取得部分がおかしいんだろう。
と思って、フォント設定をシステムフォントから取得するようにしましたが、

まさか、本当の答えは WIN_VER だったとは。
・・。挙動が変わられても困ります。本当に。

MFC怖いなぁ。と思った今日この頃です。

(Microsoft さん。教えてもらえるとありがたいです。このあたりについて・・。
あ。あれですか。 .NET つかえ! っていうことですか。多分そうですか。)

GetMessage の書き方について。

GetMessage について何かおもしろい使い方がないかな・・。と調べてみましたら、
おもしろい記述が見つかりました。

GetMessage はメッセージループの部分に書かれており、大抵は

while (GetMessage(&msg, NULL, 0, 0)){
         TranslateMessage(&msg);
         DispatchMessage(&msg);
}

という風に書かれています。

私がいつも見に行く解説サイトを見直してみてもそうでしたし、
過去に書いたソースコードもそうなっていました。

 

ですが、 MSDN の GetMessage 関数の説明を見てみますと、
MSDN:GetMessage 関数

エラーが発生した場合、-1 が返ります。

たとえば、hWnd パラメータで無効なウィンドウハンドルを指定した場合や、
lpMsg で無効なポインタを指定した場合は、エラーが発生します。

拡張エラー情報を取得するには、 関数を使います。

ということで。
そして、英語版MSDNではこんな感じのサンプルが上がっていました。

BOOL bRet; 
while((bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0) { 
         if (bRet == -1) {
              // handle the error and possibly exit
        }
        else
       {
             TranslateMessage(&msg);
             DispatchMessage(&msg);
       }
}

うーむ・・。
GetMessage の戻り値は BOOL のはずでは・・? と。思ってしまったり。

でも、BOOL って結局 int になってますから、 型としてはあっているんでしょうけど。

 

にしても・・。 BOOL だったら、 == 0 or != 0 でせう。と。
まぁー・・。そんな感じで。