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, "异常"); } }
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); }