むー
今のところ嫌疑不十分だなぁ
XP Embedded で遊んでみた
XP embeddedを評価する機会があったので、評価版で遊んでみた。
まず、インストーラーを落としてくると、これはダウンローダーらしく、VirtualPC上のマシンからでは、ダウンロードは出来たが、インストーラの展開がうまくできなかった。
仕方ないのでホスト側にインストーラを展開して、VirtualPCにコピー。VirtualPCからインストーラーを起動した。
初めインストールがうまくいったかのように見えたが、MSDEがうまいこと起ち上がってなかったらしく、ファイルが無くてビルドがこける、アップデートも出来ないという状況でマシンを再起動したらちゃんとMSDEのアイコンが起動状態になったので、改めて、Disk2,Disk3,MUIの日本語パックを適用していった。
ここらは特に難しいこともなく終わり。
とりあえず、適当にプロジェクトを作り、ビルド。いろいろ足りないといわれるので補ってビルド。
出来たイメージをVirtualPCのHDDに入れるて、DOSからsysを転送してbootprepで起動可能にした。
結果、青画面。
やっぱり。
次に起動しているマシン上で、tap.exeを実行して構成情報を取得。
インポートしてビルド。同様にVirtualPCへ。
結果、ビルドできた。が、日本語になってない。
※これは、前述のMSDEの関係でMUIがうまく入っていなかったのが原因で、ちゃんと入れたら日本語になった
次にUSBドライブからの起動に挑戦。
ufdprepというのを使うようだけど……無い。
Feature Pack 2007 というのが必要なようなので、MSからダウンロード。
無事、usbprepを入手したので、今度は、ホストPCの構成情報を抜いてイメージ作成。
結果、(1)青画面 (2)NTLDRがないぞ
ufdprepの使い方が悪かったようで、ufdprepからUSBフラッシュを初期化して、単純に出来たイメージを転送したら起動できた。
構成をインポートしただけの状態だと、200Mぐらいの小さいイメージになるので、256MのUSBフラッシュでも十分起ち上がる。ちなみにXP Proの場合、4GのCFに入れて2Gぐらい。
とりあえず、何とか使えそうなので、手配するかなぁ……
あと、参考書買わなきゃ、日本語の本は無いみたい。
Remote API 2 (RAPI2) Managed Wrapper
Windows Mobile とPCを連携しようとすると、ActiveSyncを使うことになりますが、ファイルの同期とか考えるとActiveSyncの機能だけではどうにも心許無いということで、RAPIを使おうかなと調べてました。
Native CのAPIしかないのかなぁと見ていると、RAPI2ってことでCOMのインタフェイスがありました。
どうせなら、C#で使いたいからだれかWrapper書いてないかなぁと調べてみたところ
Remote API 2 (RAPI2) Managed Wrapper
ありました。
感謝しつつゲット。
ざっと試してみたところ、とりあえず動くものの、接続、切断のイベントが飛んでこないなぁとソースを見てみると
RAPI.cs のところで、Sinkに繋いでるけどAdviseしなくても良いのかなぁと、コードを足してみたらイベント発生。
これでいいのかなぁ
"// added this code to enable an event. 2008/05/06 " のコメントのある行が追加部分(3行)
#.......................前略 /// <summary> /// Creates a new instance of <c>RemoteDeviceManager</c>. /// </summary> public RemoteDeviceManager() { iSink = new RAPISink(); iSink.DeviceConnected += new EventHandler(OnDeviceConnected); iSink.DeviceDisconnected += new EventHandler(OnDeviceDisconnected); iDesktop.Advise(iSink, out dwContext); // added this code to enable an event. 2008/05/06 this.Devices = new RAPIDeviceList(iDesktop); } int dwContext = 0; // added this code to enable an event. 2008/05/06 /// <summary> /// Cleans up all internal references. /// </summary> public void Dispose() { iDesktop.UnAdvise(dwContext); // added this code to enable an event. 2008/05/06 iSink.DeviceConnected -= OnDeviceConnected; iSink.DeviceDisconnected -= OnDeviceDisconnected; iSink = null; this.Devices = null; GC.SuppressFinalize(this); } #.......................後略
Microsoft Visual Studio International Pack 1.0
ベータじゃなくなったポイ。おとしただけ。
Microsoft Visual Studio International Pack 1.0 ベータ1
ひらカタ変換とか、全角半角変換とかできるライブラリや、ふりがな補完ライブラリ、均等割り付けライブラリなんかが入ってる、極東用のサポートライブラリ。
C#だと、ひらカタ変換するのに、Win32API呼ばなきゃ行けないので便利かなと思って、ひらカタ変換をトライ。
string readh = KanaConverter.KatakanaToHiragana(text);
こんな感じでお手軽に変換できる。
Win32APIの、LcMapString を使って変換する場合に比べると、かなり遅い。
ベータだからかなぁ。
こっちの場合、自作のクラスを作って
string readh = Utility.MapStringExec.MapString(Utility.MapStringExec.MapFlags.HIRAGANA, text);
こんな感じで使えば、勝手はあんまり変わらない。
ベンチは取ってないけど、International Pack の方が目に見えて遅い。もっとがんばれ International Pack
……KanaToRoma変換ついてないのは何でかなぁ、まあ、わざわざ入れる機能でもないってことか。
HandleRefが無い
GCHandleで代用できないか努力してみよう λ...