コード例 #1
0
 // ロード時の動作
 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();
 }
コード例 #2
0
        // ホットキーによる動作
        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);
            }
        }