January 13 2014

模仿QQ ctrl+alt+z弹出窗口

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Runtime;
using System.Runtime.InteropServices;

 

 

 

DBHelp help = new DBHelp();
        //private Dictionary HotKey;
        string  q = “1001”;
        string name = “”;
        int ai = 0;
        [DllImport(“user32.dll”, SetLastError = true)]
        public static extern bool RegisterHotKey(
            IntPtr hWnd,                //要定义热键的窗口的句柄  
            int id,                     //定义热键ID(不能与其它ID重复)             
            KeyModifiers fsModifiers,   //标识热键是否在按Alt、Ctrl、Shift、Windows等键时才会生效  
            Keys vk                     //定义热键的内容  
            );

        [DllImport(“user32.dll”, SetLastError = true)]
        public static extern bool UnregisterHotKey(
            IntPtr hWnd,                //要取消热键的窗口的句柄  
            int id                      //要取消热键的ID  
            );

        //定义了辅助键的名称(将数字转变为字符以便于记忆,也可去除此枚举而直接使用数值)  
        [Flags()]
        public enum KeyModifiers
        {
            None = 0,
            Alt = 1,
            Ctrl = 2,
            Shift = 4,
            WindowsKey = 8
        }  

 

RegisterHotKey(Handle, 103, KeyModifiers.Alt | KeyModifiers.Ctrl, Keys.Z);

 

 protected override void WndProc(ref Message m)
        {
            const int WM_HOTKEY = 0x0312;

                switch (m.Msg)
                {
                case WM_HOTKEY:
                    switch (m.WParam.ToInt32())
                    {

                        case 103:
                            if (this.WindowState == FormWindowState.Normal)
                            {
                                    this.Hide();
                                    this.WindowState = FormWindowState.Minimized;
                                    this.Visible = false;
                                    this.notifyIcon1.Visible = true;
                            }
                            else
                            {
                                this.Visible = true;
                                this.WindowState = FormWindowState.Normal;
                                notifyIcon1.Visible = false;

                            }
                            break;
      
                    }
                    break;
            }
            base.WndProc(ref m);
        }

 

 

UnregisterHotKey(Handle, 103); //销毁句炳



Copyright 2019. All rights reserved.

Posted 2014年1月13日 by ucjmh in category "c#

Leave a Reply

Your email address will not be published. Required fields are marked *