タグ

2009年12月21日のブックマーク (3件)

  • 覚書/C♯/グローバルフック - PukiWiki

    グローバルフック † WH_KEYBOARD_LL, WH_MOUSE_LLの2つは特別な方法でフックするためC#でも使用可能です。これ以外のグローバルフックはC#ではできません。通常グローバルフックはDLLにする必要がありますが、この2つは特別でexeファイルからもフック可能です。 モジュールのインスタンスハンドルはSystem.Runtime.InteropServices.Marshal.GetHINSTANCE(typeof(T).Module) とやれば取れます。しかしながらこれをexeファイルを対象に行い、VS 2005を使ってデバッグ実行をする場合vshost.exeが走っているため正しい値が取れません。回避方法としてはデバッグオプションでVisual Studio ホスティングプロセスを有効にするというオプションを無効にする、GetModuleHandle(NULL)を呼び

  • 緑のバイク ★ 初めてのC# Form デザイン

    // Form を表示する public class Form1 { Form2 form2 = new Form2() ; form2.Show() ; } public class Form2 { /* Form1 と並行操作できる処理 */ } // Form を「モーダル ダイアログ」表示する public class Form1 { Form2 form2 = new Form2() ; form2.ShowDialog() ; : : form2.Dispose() ; } public class Form2 { /* Form1 とは並行操作できない処理 */ } // Note: 開いた Form2 を閉じない限り、Form1 へフォーカスを移動できない! // Note: Form2 で、プロパティ DialogResult が設定されている Button をクリックす

  • 第12回 VB 2005でWin32 APIを利用する(2/4) - @IT

    ■プログラムの考え方 フォームのデザインが終わったところで、コードを書きたくてウズウズしている人も多いと思うが、あせらず確実に進めよう。最初に、どのようにしてほかのプログラムのウィンドウのサイズを変えるのか、その考え方や流れをあらかじめ見ておこう。その方が見通しはずっとよくなるはずだ。 ウィンドウのサイズを選択するための処理は、このプログラムのフォーム上での処理なので、従来のコードとさして変わることはない。問題は、[サイズ変更]ボタンをクリックしたときの処理だ。 まず、ほかのウィンドウでマウスの操作をした場合でも、自分のフォームでマウス・イベントを受け取る必要がある。そのためには、ほかのウィンドウにマウス・ポインタが移動しても、マウスを「捕まえて」おかなければならない。実は、この設定は簡単。フォームのCaptureプロパティをTrueにしておくだけでよい。図4のようなイメージでとらえるとい