C#
マネージコードから、DLLのネイティブコードを呼び出すことを、P/Invoke(Platform Invoke)という。stringやIntPtrなどはマネージコードとネイティブコードで表現方法が異なるため、CLIによって変換処理が行われる。 このように、異なるシステム間でデータを…
タスクトレイにアイコンを表示するには、ツールバーのNotifyIconを用いる■手順 ツールバーのNotifyIconを、フォームにドラッグする NotifyIconのプロパティのIconに、適当なアイコンを設定する NotifyIconのイベントのMouseClickをダブルクリックする 自動生…
閉じるボタン等でアプリを終了するのを禁止するには、WndProcをオーバーライドしてWM_SYSCOMMANDのSC_CLOSEを無視すればよい。 この方法では、閉じるボタンは押せる状態だが、押してもアプリは終了しなくなる。 また、アプリ左上のアイコンをクリックして表…
メッセージを送信したい相手のウインドウハンドルがわからない場合、FindWindowを用いれば特定の相手のウインドウハンドルを取得できる。 この取得したウインドウハンドルを指定してSendMessageを呼ぶことで、特定のウインドウにメッセージを送信する。■送信…
マウスイベントが発生するとWM_NCHITTESTメッセージがWindowsからフォームに投げられる。 このメッセージに対してフォームは、クリックされた場所がタイトルバーであればHTCAPTION、クライアント領域であればHTCLIENTを返す。 WndProcをオーバーライドすると…
フォームのボタンを押したときに、ポップアップメニューを表示し詳細項目を選択できるようにする場合など。ツールボックス→すべてのWindowsフォーム→ContextMenuStripをフォームにドラッグする。 メニュー項目を入力する。 入力したメニュー項目をダブルクリ…
ミューテックスに識別名(アプリ名)をつけて作成し、そのミューテックスを取得できる場合のみアプリを起動する。他のスレッドが実行中であればWaitOneメソッドは待ち状態となる。 タイムアウトを0にしているので、即座にfalseが返る。■C# // アプリケーショ…