// ロード時の動作 protected override void OnLoad(EventArgs e) { // ファイル名の文字数制限(64文字まで) TextBoxSaveName.MaxLength = DFN.LIMIT_FILENAME; TextBoxSaveName.Text = Settings.Instance.SaveFileName; // バージョンの設定 ToolStripMenuItemVersion.Text = "Version:" + Application.ProductVersion; try { // PrtSrcをID 0のホットキーとして登録 hotkeyPrtSc = new ClsHotkeys(this.Handle, 0, Keys.PrintScreen); // Alt+PrtSrcをID 1のホットキーとして登録 hotkeyAltPrtSc = new ClsHotkeys(this.Handle, 1, Keys.Alt | Keys.PrintScreen); } catch (Exception ex) { // エラーメッセージ表示 MessageBox.Show("キャプチャソフトの併用はできません。" + "\n" + "他のキャプチャソフトを終了してからお試しください。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); // 終了(フォーム表示していないとうまく終了しない) this.Show(); Application.Exit(); } //メモウィンドウフォームの宣言 Common.fPreview = new FormPreview(); }
// ホットキーによる動作 protected override void WndProc(ref Message m) { const int WM_SYSCOMMAND = 0x0112; const int SC_CLOSE = 0xF060; const int WM_HOTKEY = 0x312; if (m.Msg == WM_HOTKEY && m.LParam == hotkeyPrtSc.LParam) { // カーソルを追加する場合 if (Settings.Instance.CaptureCursorMode == true) { // カーソルの情報を取得 CURSORINFO ci = new CURSORINFO(); ci.cbSize = (uint)Marshal.SizeOf(typeof(CURSORINFO)); GetCursorInfo(ref ci); // カーソルの形状を取得 ClsCapture.shotCursor = new Cursor(ci.hCursor); // カーソルのホットスポットを取得 ClsCapture.shotCursorHotspot = System.Windows.Forms.Cursor.Current.HotSpot; // カーソルの位置を取得 ClsCapture.shotPoint = System.Windows.Forms.Cursor.Position; } // ホットキーの登録を解除(念のため) hotkeyPrtSc.Unregister(); hotkeyAltPrtSc.Unregister(); // トリミングモードを実行 SetForm_Capture(); try { // PrtSrcをID 0のホットキーとして登録 hotkeyPrtSc = new ClsHotkeys(this.Handle, 0, Keys.PrintScreen); // Alt+PrtSrcをID 1のホットキーとして登録 hotkeyAltPrtSc = new ClsHotkeys(this.Handle, 1, Keys.Alt | Keys.PrintScreen); } catch (Exception ex) { // エラーメッセージ表示 MessageBox.Show("キャプチャソフトの併用はできません。" + "\n" + "他のキャプチャソフトを終了してからお試しください。", "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); // 終了(フォーム表示していないとうまく終了しない) this.Show(); Application.Exit(); } } else if (m.Msg == WM_HOTKEY && m.LParam == hotkeyAltPrtSc.LParam) { // キャプチャを取得 Bitmap bmp = ClsCapture.ActiveWindowsCapture(); // キャプチャ後の処理実行 Common.ImageCaptured(bmp); // メモ画面が開いているとき if (Common.fPreview.Visible == true) { // キャプチャ終了後メモ画面に貼り付け Common.fPreview.RichTextBox1.Paste(); } bmp.Dispose(); } else if (m.Msg == WM_SYSCOMMAND && m.WParam.ToInt32() == SC_CLOSE) { Hide(); } else { base.WndProc(ref m); } }