よくある話。
VC++のWin32(非MFC)のウィンドウアプリケーションプロジェクトのひな型では、クラス化されてないコードでだらだら書かれているので、クラス化したいなぁと思うわけだ。
思うことは自由なんだけど、WndProcコールバックがクラスメンバだからということで、いろいろ困難が付きまとう。
よくある話。
VC++のWin32(非MFC)のウィンドウアプリケーションプロジェクトのひな型では、クラス化されてないコードでだらだら書かれているので、クラス化したいなぁと思うわけだ。
思うことは自由なんだけど、WndProcコールバックがクラスメンバだからということで、いろいろ困難が付きまとう。
Azureは限りなく透明に近いブルーって感じの色らしいです。
クラウド(雲)を浮かべる空の色ってことかも。
Vector様のご厚意でAzureの無料セミナー(ハンズオン)をうけるため、はるばる静岡から日帰り(はるばるじゃねぇ)。
当初、Windows Azureって、機能特化したOSを販売するのかと思ってた。
使った分だけお支払いの仕組みを持つサービスってことらしい。
じゃ、他のウェブアプリホスティングサービスとどこが違うのか、という点については、まだよくわからないけれど、いろんな部分で、Hyper-Vっぽい仮想化技術が使われているから、ほぼノンストップだったりとか、柔軟なスケーラビリティとかの恩恵を受けることができるらしい。
あと、アプリホスティングの場合、標準のままだと、手元で作ったアプリを動かすことができなかったりする場合があるのだけれど、Azureの場合は、VisualStudioでAzure専用にアプリ開発ができるわけで、開発から実稼働までの一貫性が確保できる点は大きいような気がした。
高速化は後回し。
一応、Sleep(0)とかSystem.Windows.Forms.Application.DoEvents()とか入れてるんですけど。
マウスポインタを取得しようと思ったんです。
System.Windows.Forms.Cursor.Currentを使えばいいってことらしいんですが、これ、バックラウンドで取得すると砂時計になっちゃうし、じゃぁUIスレッドだったらいいかというと、自分の領域外では正しく取得できないという罠。
でも、何とか、VGAダミーアダプタを利用した仮想セカンダリ画面で、各種操作が可能なことを確認。
#細かい文字を読み取るのは厳しいものがありますが・・・
2048×1536,32bitでも、XGA画面上でなんとか操作できます。
あとは、セカンダリ画面上で全て操作できるように、タスクバーもどきでも用意すれば・・・と思ったりするんだけど、もっと高速軽量化しないと無理か。
ローカルでRDPとかを使う方法って無いかしら・・・
単純な仮想スクリーンでいいじゃんってのは無し。
P.S. *.rdpで画面圧縮する呪文で満足しちゃったので、これ終了。ソース欲しい?
Formでつくって、とても遅い気がしたので、WPFにしたいと思ったところからはじまる。
いろんなところを検索して、キャプチャしたビットマップデータを表示するところまではできた。
しかし、リアルタイムで更新するにはタイマーか・・・ツールボックスに無い。
Thread.Timerを使うと、Imageへビットマップを設定するところで、違うスレッドが所有してるから変更できないとかの例外が発生する。
で、探して、見つけた↓。
WPF のスレッド: Dispatcher を使用して応答性の高いアプリケーションを構築する
そうそう、BackgroundWorker使えるんだよ。
できましたのでアップしておきましょう。
相変わらずWindows7でリサイズやXPモードの問題はありますが。
入力方向のみですが、テキストのDrag&Dropに対応ですよ。
XPなら2GBでOKで書いたとおり、XPなら2GBで何とかできる。
そのVHDを持ってWindows 7で動かしてみた。
ちゃんと、XPモードもどきで動く動く。
#処理速度に期待してはいけない。
スタートメニューへショートカットを追加すると、Windows7にもショートカットが追加される。
ショートカットを追加すると、コマンドプロンプトやIEが追加される。
しかし、エクスプローラーは追加されない。
エクスプローラーを使いたければ、コマンドプロンプトから、explorerを起動するしかなさそう。
でも、VHDサイズは2GB。
2GBの利点は、バックアップの容易さにある。
DVDにもそのまま焼けるサイズという点は非常に便利と言える。
とりあえず、できたっぽい。
favicon.icoのマネージハンドラ。
できたっぽいんだけどね。
時間(JST)を埋め込むようにしてみたんだ。
アクセスする都度変わるとおもろいと思ってたんだけど・・・
Expires指定してもfavicon.icoはキャッシュ更新されないのですよ。
なんででござろうか。
キャッシュから削除してアクセスすれば取得してくれるので、キャッシュチェックしていないわけじゃなさそうなんですが。
IE8だけかな?
ま、動くハンドラができたことと、favicon.icoが無くてログに404を記録されることが無くなったことは良いかな。
言い訳をすると、途中から腹痛で・・・言い訳だな。
全体的にダメだったんだけど、特に、AJAXがダメ。
どこで動かしたいか、非同期か、コールバック、変更範囲は・・・
とか考えつつ、要素記述やら、スクリプト記述やら、コード記述やら・・・
もうね、気が狂うね。
ユーザーが制御できない「秘密cookie」、半数強のサイトが利用 - ITmedia エンタープライズ
薄々わかっていたことだけど、トレーサーだったわけね。
所詮、機能を実現すればいいってことになるんだけど。
コードを書く際、どこからはじめるか、どういう順番で記述していくか、とか、ちょっとしたことでずいぶんと楽ができるのではないかという、希望的観測とか、実際に知ってるよとか、そういうのはあると思う。
でも、そういうのって、文章に出来る部分と、勘でやってる部分とがあって、どうにも。
コードを複数人で書くとかいうことはペアプログラミングとかやらない限り、滅多にないはず。
出来たコードを複数人でレビューしたとしても、途中経過は分からない。
最近のコメント