Top > Programmingとか > VB / VB.NET > WindowsVista

2008年01月22日

Vistaのキーボードレイアウト

以前キー割り付けで、直接レジストリを書き換えてキーボードのキー割り付けを変更する方法をお話ししたわけですが。

でもやっぱコード表をにらみながらテキストエディタで書き換えるのはなかなか大変なわけです。ものすごく間違えやすくてオウンリスクなわけです。

なんかそんなツールがないかなーあるといいなーと思いながら日々を生きていたら、おお、Microsoftからいつの間にかこんなものが!

Download details: Microsoft Keyboard Layout Creator 1.4

さっそくダウンロード→インストール→動作確認ですよ。

これ多言語に対応してまして。「日本語」に設定してさあ試そう、って

106キーボード独自のキーが設定できないよ(;-;)

半角/全角、無変換、変換、カタカナ/ひらがなキーがレイアウトからがっぽり抜け落ちてまして。日本語をチョイスしてもキートップのフェイスが変わるだけで、レイアウトは101/102のまんまで。

なんかびみょーに片手落ちだなーとがっかり。

そうなると、なんだか意地でも探したくなってきました。
で、探してみました。見つけました。

Satoshiさん作 Change Key v1.40

ReadMeとか変更履歴とか見てみたら、どうもこれ私が上記エントリで手作業で書き換えたレジストリをソフトウェアで書き換えるもののようです。

Vistaで操作すると、キー割り付けの変更でキートップの文字表示が乱れるんですが、十分実用に耐えます。

ScanCode表をにらまなくてもいい、テキストエディタでレジストリファイルを書かなくてもいい、20パターンまで割り付けデータを保存しておけてレジストリを差し替えながら使える、ってのはものすごくありがたいです。

説明には対象OSがXPまでしか書いてませんが、これVistaでも有効です。

いやーなんかすっきりしたー。

2007年03月24日

Vista用WinHelp

ウィンドウズ開発統括部blog
Windows Vista 用の winhlp32 がリリースされました

おお!

2006年12月29日

ReadyBoostを試してみた

WindowsVistaには、USBメモリなどの外部デバイスでマシンの高速化を図れるというReadyBoostって機能があるらしいんですが。

貧弱な私のマシンもあっという間にムキムキに!?

という期待で試してみました。
でまぁとりあえず動作したっぽいのでご報告。
今回は、Pen4/2GH +RAM512MBのマシンに1GB/USBメモリを接続、内880MBを割り当ててみました。

今んとこIME2007で漢字変換するたびにアクセスしてるっぽいので、ここらへんでの再読込が効いてるかなー的な感じです。確かにやたらノロいと評判のIME2007が割とサクサク動いているような気がするので効いているような?でも手を止めて何もしない時にもアクセスランプ点滅するのでいまいち確信持てず。

20061229001.png

で、実際メインメモリに使われるわけではないんですね。
このへん例えばGIGAZINEUSBメモリがパソコンの追加メモリになる「Windows ReadyBoost」などは誤解を招きやすい見出しになっているような気がぃぇ全文読むと誤解しないんですけどね。@ITの「Windows Server Insider > Vistaの地平 >第3回 カーネルの改良とフォント、セキュリティ機能の強化」のサブ見出し不揮発性外部メモリを利用した性能向上を可能にするReadyBoostは誤解しませんが、なんだか何を言っているのかピンと来にくいす。

要はUSBメモリやSDカードなどのリムーバブルディスクの一部をHDDのページングファイルのキャッシュとして使い、メインメモリへの再読込をなるべく高速に行えるというテクノロジなわけですね。言ってしまえばHDDキャッシュの二次キャッシュ的な意味合いで。
ので頻繁にメモリスワップを起こす状況下で大量定量の再読込を発生させることができないと効果の計測は難しいす。せっかくですので数値で具体的に効果を図ってみたかったんですが…なんかいい方法はないかなぁ。

たくさんのウィンドウなどを開いて作業すると上記のマシンではどんどん動作が遅くなっていってしまうので、しばらく使い込んでみてどのくらいイライラ感が減るか、というあたりで自分なりの満足度を測ってみたいと思います。


さてこのReadyBoostの仕組み、USBメモリ側からみると1GBまるまるリムーバブルドライブとして認識され、キャッシュ部分はReadyBoost.sfcacheというファイル名で領域が確保されるというHDDのページングファイルと同じ考え方です。割当量を調整でき、非割当部は従来通りドライブとして使えるのも同じ。
だったら最初からUSBメモリにページングファイル割り当てれば読込だけでなくそもそもの書き込みだって速くなるじゃん、と思うわけですが。で実際リムーバブルディスクへの従来のページングファイル設定も可能なわけですが。

従来型ではなくReadyBoostを使うメリットは、ページングファイルが暗号化されるということと、通常のリムーバブルディスク取り外しの手順でマシン稼働中にでも取り外しが可能だという2点。
逆にデメリットは、メモリスワップは一度HDDのページングファイルにキャッシュされさらにReadyBoostキャッシュへ暗号化→格納という手順になるため、再読込の部分しか高速化されず、書出の部分では従来通りの時間がかかるってより二重書込になりますので若干遅くなるのではないかってところですね。


でこのReadyBoost、USBメモリなら何でもいいのではなく、高速にI/Oできるメモリを使っているものでないば対応してくれないんだそうで。
具体的には

  • 4Kbytesブロックランダム転送時2.5MB/秒以上
  • 512Kbytesブロックランダム転送時1.75MB/秒以上

なんだそうですが、問題はそんなスペックシートを公開してくれているUSBメモリなんて見たことないよ、ということで。

今回私が成功(だと思うんですけど)したUSBメモリはグリーンハウスピコ・ターボ(GH-UFD1GTB)です。
データ転送速度最大480Mbps(理論値)なのでイケるのではと思い、12/29札幌のDo-夢で¥3,980(税込)で購入しました。

本品はどうも台湾ADATAPD2のOEMっぽいす(未確認)。
どーもOEMはメーカーサポートがアレだったりOEM元のものより高価めの価格設定だったりすることが多いのでできればPD2をと探してみましたが、札幌では見つけられませんでしたよ(;-;)。

ちなみにbpsってのはビット単位、B表記はバイト単位です。またbpsはI/Oデータ量ではなく通信レートで、パリティやらなんやらの制御信号込みです。から、一概にbps/8=Bとなりません。ゆとりを見て10くらいで割ると目安になります。
私は、480Mbps/10≒48MB/秒くらいかなーで考えてみました。Do-夢の説明文では47MB/秒となっていましたよ。

2006年12月25日

WPF/E メモ

“WPF/E” (codename) Community Technology Preview for Windows (Dec 2006)

は再掲として、これのSDKも出てました。

“WPF/E” (codename) Software Development Kit (SDK) Community Technology Preview (Dec 2006)

元ネタはMSKK ASP.NETアプリケーションマーティング担当者(鈴木祐巳,Masami Suzuki)WeblogWPF/E CTP SDKのインストールについて(続報)。

VS2005があり、SP1が当たっていることが条件。日本語版にも対応しているとのこってす。

実際にインストールしてみると、Windowsメニューに[WPFE SDK]ができ、その下にこちゃこちゃといくつか項目が作成されます。[Tools]-[Install WPFE VS Template]を実行すると「"WPF/E" Visual Studio 2005 Template CTP (Dec 2006)」ってインストーラが実行されて、VS2005にWPF/E用のテンプレートが追加されます。

20061225_0001.png
(クリックで拡大します)

うわーC#カテゴリ内にできるんだこれ。ここなどの今年春先の各メディアの報道ではVB/C#に対応するっぽい旨伝えられていたわけですが、CTPだからなのかなー。RTMまでにはVBカテゴリのテンプレートもほしいところです。

で、チュートリアルは@ITの記事、一色@デジタルアドバンテージさんの“WPF/E”開発を体験してみよう!が力作。今現在の状況説明やCTPゆえの不完全さへのフォローまで入って、現時点で読める日本語資料としてはさいこーなんではないでしょうか。ちなみに私の環境では何の障害もなくテンプレートのインストールはできました。

さて、これから読み込みだ。

2006年12月24日

SBGメモ (1)

★ APIコール可能…なのか?

MSDN Forums » Gadgets »Sidebar Gadget Development
Keyboard State Gadget(IanPaskin - 04 Dec 2006, 1:03 PM UTC)に対する、

(Scott Allen(MVP)  - 04 Dec 2006, 7:40 PM UTC)の書込:

I don't believe you'll be able to get the keyboard state just using JavaScript. The only approach I can think of offhand is to write a COM wrapper that calls GetKeyState in user32.dll. You can use that COM object from your gadget script, then.

(Jonathan Abbott - 06 Dec 2006, 9:26 AM UTC)の書込:

As Scott states, you'll need a COM. Here's the code you'll need (VB). I haven't tried it, but I believe it returns 1 for NumLock/CapsLock/ShiftLock if they're on.
Private Declare Function GetKeyState Lib "user32" _
(ByVal key As Long) As Integer
Public Function KeyState(keyCode As Long) As Integer
KeyState = GetKeyState(keyCode)
End Function

★ XAMLとの連携可能 → WPF/E使用

“WPF/E” (codename) Community Technology Preview for Windows (Dec 2006)

Microsoft Expression Web Free Trial(Web用XAMLが書けるんではなかったっけ。)

Microsoft Expression Design December 2006 CTP(グラフィックパーツはこっちの担当ではなかったっけ。)

MSDN "WPF/E" (codename) Dev Center
「WPF/E" (codename) CTP (December 2006) SDK Samples」でWPF/Eを使ったプログラムサンプルへのリンクがいくつかある。WPF/E CTP(Dec2006)をインストールすると動作確認可能。

★ sideBarGadgets サンプル

Building a Windows Vista Email Gadget using the .NET Framework(Coding4Fun)
メールのアラートを表示。.NET Frameworkとの連携サンプルでもある。VB/C#対応のソースダウンロード可能。

とりあえずここまで。

SBGチュートリアル実践

教本は見る Windows Vista Webcast シリーズ:3rd step Windowsサイドバーガジェットを開発するってことで。

元記事ではVSのエディタ使ってどうのということになっていますが、めんどくさいので秀丸でいいや、utf-8のcrlfならだいじょぶだろうとやってみたらさあ大変。追加しようとするたびにサイドバーが異常終了します。

標準添付されているガジェットのソース(つかガジェットはhtml+JavaScriptだそうなのでスクリプト=ソースのままで実行するんですが)(探すのにちょっと手間取りましたが、標準ガジェットは[C:\Program Files\Windows Sidebar\Gadgets]フォルダ下に拡張子.Gadgetのフォルダとしてそれぞれ存在しています)と見比べてもどーにも違いは分からず、でも異常終了も解決できず。

しかたがないのでVSのインストールから始めました。Vista+テキストエディタで何とかなると踏んでいたのでVSのインスト後回しにしていたんですよね。
VS入れたらSP1とSP1 Update for Vistaβも入れなきゃならず、たぶんβはまともにアンインストできないでしょうから正式版出た時にVistaからインストし直さねばなんないのが嫌だったんだけどなーしかたがない。

で、VSからファイルを作り直してみて、やっぱ異常終了が出ます。なんでだー。

ってよく見ると、html側の提示ソースに"</head>"がありませんよ?

なきゃおかしいすよねこの構造なら。DemoVideo4 : HellowWorld の作成で提示されるソースを見ると、やっぱり"</head>"があるじゃないですか。

つことで"</style>"行と"<body>"行の間に"</html>"を追加して、おぉ今度はまともに表示されました。

pg-0001.png

わからないのは、一度きちんと表示されるようになると、改めて"</html>"を削除しても正常に動作してしまうこと。ので、ほんとにこれが原因なのかどうかはいまいちはっきりしなかったり。

ついでですが、htmlの文字コードはutf-16/crlfですね。これは私の勘違い。utf-8で保存すると見事に文字化けしまくります。

また、チュートリアルページのソースをそのままコピー&ペーストすると、VS IDEのhtmlエディタ側で文字装飾まで含めて貼り付いてしまうことがあるようです。これもインスト直後起動時の初回にしか発生せず、2回目以降は再現できなかったので発生条件がはっきりしないんですけれども。
この状態になってしまうとインデント部分のスペースがすべて表示文字列として扱われてしまいますので、目的の「こんにちは!」はみょーに右下隅に追いやられます。
こんな状態になってしまった場合は、一度htmlソースのインデントをすべて取り払い手作業でもう一度インデントをつけるか、VS IDEの[ツール]-[オプション]ダイアログの[環境]-[フォントおよび色]ページでフォントとサイズを設定してやるか(あるいはその両方の操作)で正常になります。

ちなみに[ガジェットの追加]ダイアログでの表示名が右側だけに「"」が付いていてちょいみっともないかもしれません。

pg-0002.png
(クリックで拡大します)

これもチュートリアルページに提示されているソースのポカミスで、xmlの3行目<name>タグは「ハロー ワールド"」と右側だけに「"」が付いているせいですね。単純に「"」を取ってやると、きれいな表示になります。


さてサイドバー上で正常に表示されることを確認できたら、次へ進みます。

ガジェットの特徴的な機能を使ってみるの項は少しわかりにくいので少々補足説明。

まず最初に提示されている「<script>~」ソースは、HelloWorld.htmの"</style>"行の直後に挿入します。

次に提示されている"<body id="contentArea" onload="setContentText()">"は、現在HelloWorld.htmに記述されている"<body id="contentArea">"の行を置き換えます。

その次の行の説明文ではセッティング用htmlのファイル名が「Settings.html」となっていますが、ファイルを追加する手順の説明では「Settings.htm」となっていて、どっちよっ!って気持ちになりますが、ソース内では「Settings.htm」となっていますので「l」なしで統一してください。でないとscriptが動きません。

これでOKOK。サイドバーに表示されているガジェットを右クリック→[削除]で一度消し、再度[ガジェットの追加]ダイアログで追加すれば修正を反映した最新版のガジェットが表示されます。

pg-0003.png

で。
これはいったい何をやっているのかというと、環境変数「ProgramFiles」の内容を表示させているわけなんですけれども、私としては

そもそも「環境変数」ってなによ?

って感じの方もいらっしゃるのではないかと。
サイドバーガジェットにはあまり関係ないWindowsの基礎知識な部分ですので、こんなところでムダに幅広い知識を前提としなくてもいいのになーという気もしないのではないのですが。

えーと、Windowsメニューから[すべてのプログラム]-[アクセサリ]-[コマンドプロンプト]を選択して真っ黒なウィンドウを表示させます。で「set」と打ってEnter押せば、環境変数の一覧が表示されます。

pg-0004.png
(クリックで拡大します)

これはWindowsや各種プログラムが使うシステム的な変数なんですが。ふつーはあんまりいじるところではなく、したがってあんまり知らない人もいるのではないかってところです。

「set」で表示される環境変数は「(変数名)=(データ)」という書式になっています。今回のガジェットを起動した時には環境変数「ProgramFiles」の内容を表示するという設定になっていまして、実際コマンドプロンプト側の表示も「C:\Program Files」となっていることが確認できますね。

で、ガジェット右クリック→[設定]を選択すると、[設定]ダイアログが出てきまして、表示させる環境変数を指定できるようになっているわけです。で、ここには「ProgramFiles」と表示されているわけです。

pg-0005.png

では設定を、他の環境変数に変更してみましょう。
先ほどのコマンドプロンプトに表示された一覧から適当な環境変数名を入力してやります。めんどくさいので今回は字数の少ない「OS」とでもしてみましょう。ちなみに、環境変数は大文字と小文字を区別しません。「OS」でも「os」でも同じ環境変数を指定したことになります。

pg-0006.png

私の環境では「Windows_NT」と表示されました。コマンドプロンプトの一覧と照らし合わせると、確かにそーいぅ設定になっていますね。


どーもなー、この後の記述はしっくりこないです。
パッキングと配布の方法はともかく、デバッグツールがいまいち使い勝手が悪くって。あまりASP(≠.NET)の時代とやり方は変わらないなーと。

基本的な資料は割と整っていて。
Webなら[Win32 and COM Development]-[User Interface]-[Gadgets]以下(ここには直接リンク貼れないので1ページ目のWindows Sidebarに貼っときます)、Windows SDK for VistaではトップのWindows Sidebarに。

Windows SDK for Vistaは、2nd step サイドバーガジェットの開発環境を整えるの時点ではBate2として紹介されていますが(そしてそのリンクはまだ活きていますが)、Microsoft® Windows® Software Development Kit for Windows Vista™ and .NET Framework 3.0 Runtime Componentsとしてすでに正式版が提供されています。
2006.12.24時点ではWebライブラリはまだベータの情報で、SDKの方が最新てゅうか正式情報ですね。

SDKはダウンロード→インストしてDocument Explorer起動して、Visual Studio 2005 連結ヘルプ コレクション マネージャページでMicrosoft Windows SDKにチェックつけて再起動すればOKOK。

ってよく見たら今回のチュートリアルページ、上で指摘したような誤記のない状態で「Gadget Development Overview」(Web/Local)にあるじゃありませんか。元ネタはここだったんですねぇ。

2006年12月21日

VS2005:SP1 Update for Vistaβ登場!

先日VS2005:SP1登場!で「12.18現在未だComing soonとなっています」と言っておいたSP1 Update for Vistaですが、翌日の12.19にβが提供されたっぽいのでご報告。

Visual Studio 2005 Service Pack 1 Update for Windows Vista Beta

でもって機械翻訳日本語版リリース情報はこちら、原文はこちら

元ネタは社本@ワックBlogVisual Studio 2005 Service Pack 1 Update for Windows Vista Beta - VS2005/Windows Vistaから。社本さんはアンテナが凄まじく、情報の速さと広さにはいつもお世話になっております。ほんとどーいうアンテナしてるんだろう。

で、今回提供のSP1 Update for Vistaβ(縮めたつもりでもまだ長いな)、今んとこ英語版のみです。私はまだ実際に試してはいませんが、たぶん英語表記でもあまり実害はないんではないかなあ。βの度に各国語版出すくらいなら、その分先に進んでいただきたい気もしますし。

つことでとりあえず、Vista開発環境はなんとかなったのではないかと。
後はこちら側の精進ですね。

2006年12月20日

キー割り付け

だばだばとソース書いたり文書書いたりしていると、いつのまにか入力文字列がカタカナになってしまっているすることがあります。

わずらわしいなーなんでかなーと思ったら、どうもスペース打ったりしている時に無変換キーやらカタカナキーやらに触ってしまっていることが判明。

私はカタカナ入力する際にはひらがなで読みを入れてからF7とかF8とかでカナに変換しているので、これらのキーは思いっきり無用の長物なんですね。

つことで私の作業マシンには窓使いの憂鬱を導入し、

キー機能
無変換Delete
変換Home
カタカナEnd

と割り付けて使っていたのでした。特に無変換Deleteキーはもー超重宝。

ところがどっこい。Vistaでは「窓使いの憂鬱」はまともに動かんわけです。
IE7が"internet explorer has stopped working"とか言って起動されなくなったり、画面の再描画が異様に遅くなったりしてしまうわけです。

しかたがないのでVistaではデフォルトのキー状態でだばだば打っていたわけですが、ついつい「無変換Delete」キーを押してカタカナモードに突入してしまうわけです。変にカスタマイズすると後が大変って見本のような状態に。

そこで、なんとかVistaのキー割り付けを変更することはできないかと調べてみました。


結論。レジストリ直いじりでなんとかイケます。

[Scancode Map]ってバイナリ項目にキーボードのキーと、それに割り付けたいキーを指定してやればいいんですね。

でまず、[Scancode Map]ではキーをスキャンコードで指定しますので、希望するキーのコードを調べてみました。
参考資料はマイクロソフト社のUSBHID to PS/2 Scan Code Translation Table、この表のPS/2キーボードのSet1の16進コードがスキャンコードです。

キースキャンコード
無変換007B
変換0079
カタカナ0070
DeleteE053
HomeE047
EndE04F

私はUSBキーボードでHIDドライバなんですけど、PS/2 Set1のコードで効きます。これはキーボードの種類に関わらず共通みたいです。HIDドライバで置換してくれているだけなのかもしれませんけど。

で、[Scancode Map]は4バイト単位の構成になっていまして、

1~4ヘッダ(オール00)
5~8
9~12項目数(割り付け指定+ターミネータの数)
13~16割り付け(1)
17~20割り付け(2)
X~X+4ターミネータ(オール00)

例えばひとつめの割り付けを「無変換キーをDelete機能にしたい」のであれば、リトルエンディアン(下位バイトが先に来る)で機能→元キーの順で記述して、

53 E0 7B 00

となります。

同様に「変換→Home」「カタカナ→End」も作ると合計3項目、+ターミネータで項目数は「4」、これを4バイト・リトルエンディアンで「04 00 00 00」と記述してヘッダ(8バイトの00)を先頭に付けると、全体で

ヘッダ:00 00 00 00 00 00 00 00
項目数:04 00 00 00 
割付1 :53 E0 7B 00 
割付2 :47 E0 79 00 
割付3 :4F E0 70 00 
ターミ:00 00 00 00

となります。

これをレジストリエディタとかで[Scancode Map]バイナリとして突っ込んで再起動かければOKOK。

マシン共通で設定変更してやる場合は、

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,53,e0,7b,00,\
47,e0,79,00,4f,e0,70,00,00,00,00,00

特定のユーザの時だけ変更したいのであれば、

[HKEY_CURRENT_USER\Keyboard Layout] "Scancode Map"
=hex:00,00,00,00,00,00,00,00,04,00,00,00,53,e0,7b,00,\
47,e0,79,00,4f,e0,70,00,00,00,00,00

でOKOK。

ただし特定ユーザ設定の場合は後勝ちになりますので、複数のユーザがログオンすると最後にログオンしたユーザの設定が全ユーザに対して有効になります。設定がなければ全ユーザがデフォルト割り付けに戻ります。
このへんがユーザ別設定の限界かなーと。

2006.12.30 追記:
どうもスリープ→復帰、でもキー割り付けが初期値に戻ってしまうような。うーんなかなか理由がよくわからない制限事項があるなあ。

参考:
キーボード配列をWindows上で変更する
「備忘録」の社会復帰

2006年12月09日

VS2005 on Vista

まずよく寄せられる質問 : Visual Studio と Windows Vistaを前提としてチェックしておいてから。

WindowsVistaでのVisualStudio2005の問題点の一覧-通常ユーザーのアクセス許可で実行する場合って情報が出てまして。

マイクロソフトでは、Visual Studio 2005 を使用する際には以下を行うことをお勧めします。
  • アクセス許可を管理者に昇格して Visual Studio を実行する
  • 実行するユーザーをローカル コンピュータの "Administrators" グループのメンバにする
  • Visual Studio のアイコンを右クリックし、表示されるコンテキスト メニューで [管理者として実行] をクリックする

じゃあ管理者モードにすればいいのかってぇと、アクセス許可を管理者に昇格して実行する場合ってのも出てまして。なんかこっちの方が項目が多いような気がするのは気のせいですかそうですか。記述されていないだけで管理者で出る問題点は通常ユーザーでも出るってことなんでしょうか。

Vistaに限らずMicrosoft Visual Studio 2005 既知の問題、さらにMicrosoft Visual Studio 2005 Express Edition 使用時の既知の問題なんてのもあって、もーこんなにあるとホントにまともに動くのか?的なイメージを持ってしまいそうな気もしますが。

でも実際に使っていてこのへんで困るのってかなりレアケースです。実際私なんかこれらの資料を読むまでまったく気がつかなかったのがほとんどですし。

ついでに言うとこのあたりの資料の取りまとめと公開は、マイクロソフト社としてユーザーサポートが前進したのだと私は思っています。ひと昔前なら絶対こんな情報を公開しませんでしたので。

ここらへんの情報から「マイクロソフトの製品はバグが多い」などと言っている輩もいるようですが、私には、モノを知らずに断片的に目に触れる情報から主観的に判断した言いがかりにしか思えません。

過去から現在までいろんなソフトウェアを使ってきて、バグのない製品などお目にかかったことがありません。ひとつのソフトをいろんな客先に納品・インストするたびにバージョンが細かく上がり続けることを確認し、しかもどこをどう直したのか問い合わせても絶対に教えてくれなかったところも知っています。

バグ情報を公開していないのは、バグがないからではなく、隠しているかメーカー自身も気が付いていないかなのが普通です。きちんと不具合を把握しようと努力し、把握した情報を公開・共有しようとしてくれている企業は超マシなんですよね。

マイクロソフト社に限らず、自身のミスを誠実に認めようとする企業は増えてきています。長い目で見た時に正直な方が結局ブランドイメージは低下しにくい、第三者にバグを公開されるよりダメージが少ないなどの危機管理面、オープンソースのバグ公開→対処のプロセスがそのプロダクトの評価を下げないという実例もあり、総合的に判断してその方が利が多いということにようやく気が付いてきたということでしょうか。

決してばか正直なのではなく自社にプラスになるからこそやっているわけですが、やらない善よりやる偽善です。私はこの流れを歓迎しているんですけれどもねぇ。

おっと、おまけ。Windows Vista と Windows Server "Longhorn" 上での SQL Server 2005

2006年11月23日

SBGチュートリアル

たぶんサイドバー ガジェット Basic Step by Stepの3ページめ3rd step Windowsサイドバー ガジェットを開発するは、Sidebar Gadget Development Overviewの「CREATING A GADGET」~「PACKAGING A SIDEBAR GADGET」あたりを元ネタにした日本語版説明。

図表やコード、文章の構成自体もけっこう違うので、和訳というよりはリライトに近い感じ。ローカライゼーションなどは英語版コンテンツでしか言及していないので、両方突き合わせて読んだ方がいいかも。

もぅ長っらたしいのでSBGでいいや

Windowsサイドバーガジェットについて

要約:

  • 何のことはない、DHTML/ActiveDesktopの後継てゅうか復活ってゅうか。
  • WinVistaβ2標準のSBGは"C:\Program Files\Windows Sidebar\gadgets"以下にある。
    ".gadget"ファイルはZIPorCAB→アーカイバで中身を見ることができる。
  • 構築技術はHTML & JavaScript。資料はVista用WinSDK(英語)。
  • Vista用WinSDKは正式版が提供開始されている。RCやCTPなどプレリリースVistaに合わせたWinSDKがそれぞれ配布され間違えやすい状態になっているので十分注意。
    またVista用WinSDKは.NET Framework3.0ランタイムの正式版が同梱されているので、.NF2.0+VS2005SP1が入っているマシンだとそっち系が中途半端な環境になってしまう。別途.NET Framework3.0環境構築の手順に従って.NF3.0環境を真剣に整えるのでなければデフォルトインストではなくドキュメント類のみのインストにとどめたほうが無難。そもそもVS2005onVitsaで必要なSP1はまだβだしVistaSupportUpdateは提供開始されていないしWPFもciderもベータとかCTPとかなので、現時点でむりやり.NF3.0にしたって人身御供環境にしかならないし。
  • SBのドキュメントはWinSDKインスト後[スタートメニュー]→[Windows SDK Documentation]から[User Interface]→[Gadgets]→[Windows Sidebar]。SBGそのものはGadget Development Overview参照。
  • 作成手順は、
    1. Gadgetの名前でフォルダを作成する
    2. そこにHTMLファイルやJavaScriptファイルを作成する
    3. gadget.xmlファイルを作成
    4. フォルダ自体をZIPまたはCabでアーカイブ
    5. 作成したアーカイブファイルの拡張子を“.gadget”に変更する
  • 作成するファイルは
    • 表示用HTML
    • HTMLからの参照ファイル(画像など)
    • アイコンファイル(gadget gallery?用/Vista様式?)
    • gadget.xml(gadgetの名前やHTMLを指定)
    スクリプト・CSSはHTML内埋込/別ファイル可。
  • 各国語対応は作成フォルダ以下にロケール名フォルダ(ja-JPなど)を作成、HTML/XMLを置く。(?)
  • インストールは.gadgetファイルをダブルクリック(後はVistaの仕事)。
    「~.gadget」フォルダを直に"C:\Users\(ユーザID)\AppData\Local\Microsoft\Windows Sidebar\Gadgets"の下に置く手もあり。これは配布ってよりサイドバーとの連携回りを調整する際に重宝しそう。

わからないのは、

  • Vista様式アイコンのルールと作成手順→表示先(gadget gallery)
  • ロケールとデフォルトの関係・優先・共通項目指定(画像なんか共通と振分がありそうだし)

サンプルっつーか実際のガジェットはすでにWindows Live Gallery - Gadgetsからたくさん提供されている(Webガジェット込み)。

Microsoft Gadgets(英語)。
SBG作成の概要やオブジェクトモデルが提示されているmsdnLibページへのリンクあり。
今後リンクが追加される可能性があるのでリンク先ではなくこのページをメモ。

Gadgets Blog(英語)。
たぶん公式資料では提供が間に合わない「具体的な重箱の隅」はここに頼るしかない。死ぬ気で読み下せ。
コメントを付けられるので、ナイスなQをイカした英語で書き込めれば双方向コミュニケーションに持ち込める可能性あり。

Sidebar Gadgets - MicrosoftGadgets.com(英語)。
SBGについてのMicrosoft公式フォーラム。

Windows Live ガジェット ソフトウェア開発キット
WinSDKではなくこっちでもいいかも。実際には両方入手して見比べてみないと分かんないけれども。
2006.12.20追記:これは私の認識ミス。LiveガジェットSDKはLiveガジェット用であり、サイドバーガジェットとは別もの。

サイドバー ガジェット Basic Step by Step
SBGとは/開発環境/開発手順の三部作。何かってぇと動画で済まそうとするのでまどろっこしいが、我慢して一度は目を通すべきか。

Windows Vista RC1と最新ガジェット
Vista標準ガジェットについての説明が一通り。日本語だし、読んでおいても損はない。

まずはここまで。

2006年11月20日

Vista-U(en)をインストしてみた。

今さらですが。 でもって、ざっと眺めた雑感。
  • P4-2GHz/512RAM/GeForce(古い奴)でストレスなくそこそこ動く。
    予想外だ。
  • きれい、ゲームがおもしろい。息子は「かっこいー」としきり。
  • スリープ(だっけ?)がマジで効く。終了/再起動とも数秒程度。
    XPの時はスリープ中もファンが回るので使っていなかったんだけれども。
    黒メニューからの起動でも1分程度か。
    Vista黒メニュー→XP黒メニューの2段構成なのはちょっとめんどい。
    (このへんはインストの経緯によるよなぁ)
  • サイドバーとガジェットは意外と新鮮味がなかった。
    結局できることは変わらず、デスクトップに貼り付くのとビジュアルがキモ?貼り付ける必然性が要る。
    ビジュアルの作成は壁だなー。つやつや感とあり得ない影がポイント?
  • IE7onVistaはフォントが違うので見慣れたページが全部新鮮。
    結果オーライなサイトはIE7のレンダリングとフォントの違いで超がったがた。自分のサイトはそれなりに表示されたので安堵。
  • 2007Officeはデザイン的な親和性高し。
    なんであんなビジュアルなのかようやっとわかった。
    IME2007のシステムトレイアイコンがちょっとかっこいい。
  • VB2005はExp+SP1βで人身御供状態。
    XPより起動速し。.NFが起動時に読み込まれているから?
    とりあえず動いてるっぽいけど、使い込んでみないと何とも。
VB6の挙動について。
  • バンドルmsvbvm60.dllのバージョン末尾は79。
  • VB6JP.DLLはなし。enなので当たり前か。
    2006.12.23追記:日本語版でもVB6JP.DLLは含まれないことを確認。公式資料の同梱リストにも含まれていない。
    SP6のは末尾82なので、SP5のランタイムか(裏取ってません)。
  • 自作公開ソフトを実行してみると、日本語がみょーに小さくなる、Labelの日本語だけ化ける、TextBoxのボーダーが一部青くなる、程度の弊害。
    某君から報告受けた文字全面化けは再現せず。やはりキーボード回りか。
    SP6のmsvbvm60.dll/VB6JP.DLLを同フォルダに置くと正常に表示される。
    原因はともかく、対処としてはyはり従来通り同梱配布だなー。
  • ActiveXコントロールやインストーラは自分には関係ないので調査せず。
    SPやOSの違いでトラブりたくなかったので、昔から一切使ってないし。
  • ダイアログとのI/O確認、BitBlt、FlashPlayerの炙り出しはToDo。
    このへん全部API実装なので。どきどき。