コード例 #1
0
        private void getTopFrom_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.getTopFrom.Text == "恢复挂起的进程")
                {
                    if (ThreadId != 0)
                    {
                        this.WindowState = FormWindowState.Minimized;
                        //this.Hide();
                        Thread.Sleep(500);
                        ProcessMgr.ResumeProcess(ThreadId);
                    }

                    this.getTopFrom.Text = "当前活动窗体信息";
                    return;
                }
                IntPret = mydm.GetForegroundWindow();

                if (IntPret != 0 && IntPret != mydm.GetSpecialWindow(0) && IntPret != mydm.GetSpecialWindow(1))
                {
                    if (IntPret == ((int)this.Handle))
                    {
                        this.label2.Text = "找到自己啦!";
                    }
                    else
                    {
                        ThreadId         = mydm.GetWindowProcessId(IntPret);
                        this.label2.Text = string.Format("进程ID:{1},目标程序位置:{0}", mydm.GetWindowProcessPath(IntPret), ThreadId);
                        return;
                    }
                }
                else
                {
                    this.label2.Text = "找到桌面或者任务栏啦!";
                }
                IntPret = 0;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "异常");
            }
        }
コード例 #2
0
        private const int WM_HOTKEY = 0x312; //窗口消息-热键
        //bool isOK = false;
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case WM_HOTKEY:     //窗口消息-热键
                switch (m.WParam.ToInt32())
                {
                case 1:
                    this.Invoke(new Action(() => {
                        //btnPintScrenn_Click(null, null);
                        //this.Show();

                        getTopFrom_Click(null, null);        //获取活动窗体进程
                        //暂停目标进程
                        if (IntPret != 0)
                        {
                            this.getTopFrom.Text = "恢复挂起的进程";
                            ProcessMgr.SuspendProcess(ThreadId);
                        }

                        btnPintScrenn_Click(null, null);
                    }));


                    break;
                }
                break;
                //case 0x112:
                //switch ((int)m.WParam)
                //{
                //    ////禁止最小化按钮
                //    //case 0xf020:
                //    //    m.WParam = IntPtr.Zero;
                //    //    MessageBox.Show("我不要最小化", "提示0x112");
                //    //    break;
                //    ////禁止最大化按钮
                //    //case 0xf030:
                //    //    m.WParam = IntPtr.Zero;
                //    //    MessageBox.Show("我不要最大化", "提示0x112");
                //    //    break;
                //    //case 61458:
                //    //    break;
                //    //case 0xF060:
                //    //    m.WParam = IntPtr.Zero;
                //    //    MessageBox.Show("我不要关闭", "提示0x112");
                //    //    break;
                //    //default:
                //    //    MessageBox.Show(m.WParam.ToString(), "提示0x112");
                //    //    break;
                //}
                //break;
                //case 0x0018:
                //switch ((int)m.WParam)
                //{
                //    case 0:
                //        m.WParam = IntPtr.Zero;
                //        m.Result = IntPtr.Zero;
                //        MessageBox.Show("我不要被隐藏。", "提示0x0018");
                //        break;
                //    default:
                //        //MessageBox.Show(m.WParam.ToString(), "提示0x0018");
                //        break;
                //}
                //break;
                //case 0x0002:
                //     m.WParam = IntPtr.Zero;
                //    MessageBox.Show(m.WParam.ToString(), "提示0x0002");
                //    break;
                //case 0x0010:
                //     m.WParam = IntPtr.Zero;
                //     m.HWnd = IntPtr.Zero;
                //     m.LParam = IntPtr.Zero;
                //     m.Msg = 0;
                //     m.Result = IntPtr.Zero;
                //    MessageBox.Show(m.WParam.ToString(), "提示0x0010");
                //    break;
                //case 0x0011:
                //    MessageBox.Show(m.WParam.ToString(), "提示0x0011");
                //    break;
                //case 0x0012:
                //    MessageBox.Show(m.WParam.ToString(), "提示0x0012");
                //    break;
            }
            //Debug.WriteLine(string.Format("Msg:{0},WParam:{1}", m.Msg, m.WParam), "DMDemo");

            base.WndProc(ref m);
        }