zoukankan      html  css  js  c++  java
  • C# 后台按键 视频播放器 全屏后无法 触发

    第一种  (全屏不可触发)    

    protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) { int WM_KEYDOWN = 256; int WM_SYSKEYDOWN = 260; if (msg.Msg == WM_KEYDOWN | msg.Msg == WM_SYSKEYDOWN) { switch (keyData) { case Keys.Escape: DialogResult dr = MessageBox.Show("确定要退出吗?", "退出系统", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK)//如果点击“确定”按钮 { FormPassword form = new FormPassword(); form.StartPosition = FormStartPosition.CenterScreen; form.ShowDialog(); // this.Close();//esc关闭窗体 //System.Environment.Exit(0); } break; } } return false; }

     //第二种方法   (全屏可触发)

      private void timer2_Tick(object sender, EventArgs e)
            {
                //因为回车的ASCII码是13 所以我们这里就用把回车的ascii传递过去
                //需要监控什么按键就写某个按键的ASCII码
                if (GetAsyncKeyState(27) != 0)
                {
                    ////MessageBox.Show("你按下了ESC");
                    DialogResult dr = MessageBox.Show("确定要退出吗?", "退出系统", MessageBoxButtons.OKCancel);
                    //if (dr == DialogResult.OK)//如果点击“确定”按钮
                    //{
                    //    //Form2 form = new Form2();
                    //    //form.StartPosition = FormStartPosition.CenterScreen;
                    //    //form.ShowDialog();
                    //    // this.Close();//esc关闭窗体
    
                    //    System.Environment.Exit(0);
                    //}
    
                    //this.Close();
                }
            }
            [DllImport("user32")]
            public static extern void mouse_event(int dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
            private readonly int MOUSEEVENTF_MOVE = 0x0001;//模拟鼠标左键按下
            private readonly int MOUSEEVENTF_LEFTUP = 0x0004;//模拟鼠标左键抬起
            [DllImport("user32.dll")]
            //函数声明
            public static extern int GetAsyncKeyState(int vKey);

    //第三种方法 视频播放器按键事件 (全屏不可触发)

        private void axWindowsMediaPlayer1_KeyDownEvent_1(object sender, _WMPOCXEvents_KeyDownEvent e)
            {
                if (e.nKeyCode == (int)Keys.Escape) //32
                {
                    //MessageBox.Show("test");
                    this.Close();
                }
            }

     //第四种方法

    HOOK,    只能触发几下 就失效了 不知道为啥 ,........

    附:

    VK_LBUTTON             鼠标左键                      0x01

    VK_RBUTTON             鼠标右键                      0x02

    VK_CANCEL              Ctrl + Break                  0x03

    VK_MBUTTON             鼠标中键                      0x04

    VK_BACK                Backspace 键       0x08

    VK_TAB                 Tab 键                        0x09

    VK_RETURN              回车键                        0x0D

    VK_SHIFT               Shift 键                      0x10

    VK_CONTROL             Ctrl 键                       0x11

    VK_MENU                Alt 键                 0x12

    VK_pause               Pause 键                      0x13

    VK_CAPITAL             Caps Lock 键                  0x14

    VK_ESCAPE              Esc 键                        0x1B

    VK_SPACE               空格键         0x20

    VK_PRIOR               Page Up 键                    0x21

    VK_NEXT                Page Down 键                  0x22

    VK_END                 End 键                        0x23

    VK_HOME                Home 键                       0x24

    VK_LEFT                左箭头键                      0x25

    VK_UP                  上箭头键                      0x26

    VK_RIGHT               右箭头键                      0x27

    VK_DOWN                下箭头键                      0x28

    VK_SNAPSHOT            print screen 键               0x2C

    VK_Insert              Insert 键                     0x2D

    VK_Delete              Delete 键                     0x2E

    '0' – '9'             数字 0 - 9                    0x30 - 0x39

    'A' – 'Z'             字母 A - Z                    0x41 - 0x5A

    VK_LWIN                左WinKey(104键盘才有)         0x5B

    VK_RWIN                右WinKey(104键盘才有)         0x5C

    VK_APPS                AppsKey(104键盘才有)          0x5D

    VK_NUMPAD0            小键盘 0 键                    0x60

    VK_NUMPAD1            小键盘 1 键                    0x61

    VK_NUMPAD2            小键盘 2 键                    0x62

    VK_NUMPAD3            小键盘 3 键                    0x63

    VK_NUMPAD4            小键盘 4 键                    0x64

    VK_NUMPAD5            小键盘 5 键                    0x65

    VK_NUMPAD6            小键盘 6 键                    0x66

    VK_NUMPAD7            小键盘 7 键                    0x67

    VK_NUMPAD8            小键盘 8 键                    0x68

    VK_NUMPAD9            小键盘 9 键                    0x69

    VK_F1 - VK_F24        功能键F1 – F24               0x70 - 0x87

    VK_NUMLOCK            Num Lock 键                   0x90

    VK_SCROLL             Scroll Lock 键                0x91

  • 相关阅读:
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言II博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    学期总结
    作业
    C语言I博客作业02
  • 原文地址:https://www.cnblogs.com/enych/p/10155775.html
Copyright © 2011-2022 走看看