よくある話。
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に対応ですよ。
とりあえず、できたっぽい。
favicon.icoのマネージハンドラ。
できたっぽいんだけどね。
時間(JST)を埋め込むようにしてみたんだ。
アクセスする都度変わるとおもろいと思ってたんだけど・・・
Expires指定してもfavicon.icoはキャッシュ更新されないのですよ。
なんででござろうか。
キャッシュから削除してアクセスすれば取得してくれるので、キャッシュチェックしていないわけじゃなさそうなんですが。
IE8だけかな?
ま、動くハンドラができたことと、favicon.icoが無くてログに404を記録されることが無くなったことは良いかな。
所詮、機能を実現すればいいってことになるんだけど。
コードを書く際、どこからはじめるか、どういう順番で記述していくか、とか、ちょっとしたことでずいぶんと楽ができるのではないかという、希望的観測とか、実際に知ってるよとか、そういうのはあると思う。
でも、そういうのって、文章に出来る部分と、勘でやってる部分とがあって、どうにも。
コードを複数人で書くとかいうことはペアプログラミングとかやらない限り、滅多にないはず。
出来たコードを複数人でレビューしたとしても、途中経過は分からない。
Hobbyカテゴリに入れちゃってるのはいかがなものか。
なんか、メールでこんなの来てた。
ボリュームライセンスでもOKなのか、無料なのか、また、契約更新時の料金体系も不安ではありますが。
体系的には分かりやすくなったのではないかと。
#分業化はいいけれど、それでツール選択をしないといけないのはいかがなものかと思っておりましたよ。
#境界的作業もあるわけですが、現体系でTeam System2本買うとSuiteと同額ってのも・・・。
でも、これで、UMLツールは確保できるかなぁ、と。
☆ボタン(右から3つ目)を付けてみました。
ポチッとサイズ変更できます。
FormBorderStyleをNone設定しておかないと、フォームサイズ最小値が正しく反映されにくい模様、というのは覚書。
で、肝心のWindows 7での動作では、やはりリサイズが有効に働かないので、☆ボタン(右から3つ目)を押すようにとのこと。
因みに、XPモードのRemoteAppだと、全画面サイズの取得ができないらしく・・・
Postボタンがキレ気味なので修正を。
レイアウト系パネルを重ねてるんだけど、どこかで自動リサイズが無効になってるとデザインモードのサイズが適用される部分が出てくるらしい・・・よくわからんけど。