No Such Blog or Diary
複数キーボードの入力を複数のウィンドウに割り振って1台のPCで同時プログラミング?
合宿の縛りであるところの「チームでPC1台」への対抗策としてキーボード毎にイベントの送り先ウィンドウを変えるマルチキーボード環境を作ろうと思った.適当な理由により OS は WinXP で使う言語は C# に固定.これができれば1台のPCで複数人が同時にプログラムを書けて力強い.仕組みとしては, Raw Input 使って入力デバイスの識別できるキー入力メッセージを取得し,そのメッセージを指定されたウィンドウにリダイレクすればうまく動きそう,と.
でも,実際に作ってみると調査不足のため二つほど問題が出てきて使い物になんかった.一つ目としては,Raw Input はフォーカスなしでもメッセージ取得できるのだが,このメッセージを潰すことができずにフォーカスを持ったウィンドウにメッセージが飛んでしまう.なので,リダイレクト先がフォーカスを持っているとキーが二重に入ってしまったりする.メッセージを潰す一つの手段として,Low-Level Keyboard をフックしてチェインをぶった切るというのがあるのだが,Low-Level のフックが RawInput の前に起こるのでこれはつかえない.C#だとこのフック以外はグローバルにできないのでこの時点で手詰まり.適当なウィドウを用意してそこにフォーカスを固定しておけば何とかなるけど… 美しくない.二つ目は致命的で, Shift/Alt/Ctrl の押下状態が全キーボードで共用となってしまうみたい.つまり,どれかでShiftを押しとくくと,全ウィンドウで Shift が押された状態になるらしい.キー入力メッセージの送信で修飾キーの情報を入れてないのが原因かもしれないけどなんとなく Windows が押下状態を管理している気がするのでどうにもならん気がする.もう少し試してみやうかな?
- Comments: 0
- TrackBack (Close): -
VS.NET + Subversion
AnkhSVN という addin で VS.NET でも subversion によるバージョン管理ができるらしい.VSS (Visual SourceSafe) とかいう Microsoft 純正のソフトはひじゃうに高価なのでフリーで使える svn が利用できるこいつはありがたい.svn は cygwin で入れてるので AnkhSVN をダウンロードしてインストールするだけで準備完了.あとは適当にリポジトリ作ってソリューションごとリポジトリに追加するだけ.新しいリポジトリを AnkhSVN から作れるのかは今のところよくわからん.ので,svnadmin 使ってローカルに手動でてきとうなリポジトリを作り… もう少し使ってみないと使えるのかどうかよくわからん.
- Comments: 0
- TrackBack (Close): -
東方風神録体験版ver0.02aをやる
- 2007-07-31 (Tue)
- 遊び
ハードで3ステージクリアできたけどボロボロ… 霊撃を使うタイミングがまだよくわからん.ピンチになって霊撃使うと攻撃力減って更にやばいことになるという悪循環.一回調子崩すと立て直すのが難しいような気がする今日このごろ.
- Comments: 0
- TrackBack (Close): -
JTree で一部のノードだけ編集可能ってできるのだろうか?
JTree のメソッドでは全体を編集可能とするかどうかしか設定できない.CellEditor の isCellEditable をオーバロードして判定しようにもこのメソッドに渡させるオブジェクトが JTree とかいってて編集対象ノードがわからない.shouldSelectCell で true を返せば編集対象ノードが選択されるのだが,このタイミングが編集可能性の判定の前にないらしくうまくいかない.最終手段として編集終了時にオブジェクトを返す getCellEditorValue() でキャンセルしてるけど… さて正しいやり方はどうするのだろうか?
- Comments: 0
- TrackBack (Close): -
選挙
- 2007-07-29 (Sun)
- 一般
昼に行こうと思ったら土砂降りになったので後で行こうと思ったら忘れてた….それにしてもPC使ってる時の雷って心臓に悪いなぁ.
- Comments: 0
- TrackBack (Close): -
Fate/Zero Vol 3 読み終える
- 2007-07-28 (Sat)
- 一般
切嗣の悪がいい感じだなぁ.続きはまだかぁ.約半年も待たせるな~
- Comments: 0
- TrackBack (Close): -