网上搜了遍,很少看到有人提起怎么防止MFC程序的窗口被别的软件隐藏(如禁止句柄查看精灵隐藏)。

看到了一些帖,说用hook的,太麻烦了。

说拦截WM_SHOWWINDOW,试过了没有效果。

void CDlg::OnShowWindow(BOOL bShow, UINT nStatus)
{if (!bShow)AfxMessageBox(_T("有程序试图隐藏窗口!"));elseCDialog::OnShowWindow(bShow, nStatus);
}

弹窗执行了,但点击弹窗后程序窗口照样被隐藏。

还有些帖,说拦截WM_WINDOWPOSCHANGED,同样没有效果。

void CDlg::OnWindowPosChanged(WINDOWPOS* lpwndpos)
{if (lpwndpos->flags&SWP_HIDEWINDOW){AfxMessageBox(_T("隐藏窗口!已拒绝!"));lpwndpos->flags &= ~SWP_HIDEWINDOW;}elseCDialog::OnWindowPosChanged(lpwndpos);
}

在弹窗出来之前窗口已经被隐藏了。。。

真正有效的是拦截WM_WINDOWPOSCHANGING,代码如下:

void CDlg::OnWindowPosChanging(WINDOWPOS* lpwndpos)
{if (lpwndpos->flags&SWP_HIDEWINDOW){AfxMessageBox(_T("正在隐藏窗口!已拒绝!"));lpwndpos->flags &= ~SWP_HIDEWINDOW;}CDialog::OnWindowPosChanging(lpwndpos);
}

真正起作用的是“lpwndpos->flags &= ~SWP_HIDEWINDOW”这句,从flags里去掉隐藏窗口的标记。

有兴趣的自己测试。

MFC程序阻止别的软件隐藏窗口,或拦截WM_SHOWWINDOW消息相关推荐

  1. 基于Dialog的MFC程序在启动时隐藏为托盘程序(四)

    这部分说一下如何加menu..如果做小气球.. mfc的menu确是不如C#活着java那么easy.. 首先在rc里添加menu资源..然后在ui界面里先设置一下你的菜单.. 在第(二)部分已经简单 ...

  2. VC/MFC程序开启关闭和打开自己或其他软件,更改窗口类

    一. 关闭自身软件 直接在需要关闭的位置输入 HANDLE hself = GetCurrentProcess(); TerminateProcess(hself, 0); 二.关闭其他软件 流程: ...

  3. [VC/MFC]一条语句实现程序运行时隐藏窗口

    因为受到经济危机的影响,我在 bokee.com 的博客可能随时出现无法访问的情况:因此将2005年到2006年间在 bokee.com 撰写的博客文章全部迁移到 csdn 博客中来,本文正是其中一篇 ...

  4. 关于MFC程序中隐藏任务栏图标的问题

    前几天有个MFC对话框程序,有个隐藏任务栏图标的功能需求,就在网上搜了搜,发现基本上都是这一句: ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);也就是 ...

  5. 5e怎么绑定一键跳投_想上班摸鱼?分享一款超好用软件,一键隐藏窗口,摸鱼一时爽,一直摸鱼一直爽!...

    点击蓝字即可快速关注我,分享好软件~ 平时小林君分享的一般都是非常实用或者比较增加工作效率的软件,今天就不一样了,今天教大家怎么上班摸鱼(误),隐藏电脑窗口,设置一个老板键 今天要介绍的这款软件名叫H ...

  6. DbgView软件 查看VC++ MFC 程序的打印信息

    DbgView软件 查看VC++ MFC 程序的打印信息 一.在写VC++ MFC程序的调制过程中,需要跟踪打印信息,但在MFC中用printf不知道在哪里看打印信息,今天介绍一款软件,可以查看对应的 ...

  7. 在MFC,Win32程序中向控制台(Console)窗口输出调试信息

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

  8. 如何让MFC程序关闭按钮失效,也无法右击任务栏关闭窗口来关闭?

    如何让MFC程序关闭按钮失效,也无法右击任务栏关闭窗口来关闭,即右键任务栏的关闭窗口失效呢?很简单,有一个小窍门就是:响应IDCANCEL消息,具体实现如下: 首先定义消息映射:ON_BN_CLICK ...

  9. 在MFC程序中增加控制台窗口

    MFC程序中,如果想要输出调试信息,我们一般都是TRACE或者使用LOG文件,都不是很方便,第一个需要我们在调试状态下,第二个也要配置麻烦而且不直观.而使用Console来显示调试信息应该是更好的选择 ...

  10. C# 实现窗口程序winform像QQ一样靠近桌面边缘自动隐藏窗口

    实现原理: 实现这个功能的原理步骤如下: 1.判断窗体程序是否靠近桌面边缘: 2.获取桌面屏幕大小与窗体程序大小: 3.把窗体程序显示在桌面以外隐藏起来,预留部分窗体方便用户拉出程序: 4.判断鼠标是 ...

最新文章

  1. selenium 定制启动 chrome 的选项
  2. linux 内核 数据结构 file_operations、file、inode
  3. Java-Integer源码分析
  4. jmeter控制器--if控制器
  5. ansible自动化管理
  6. Accusoft结构化工具包FormSuite for Structured Forms常见问题解答(二)
  7. VMware Workstation Pro 无法在Windows 上运行的 解决办法
  8. 安装python要注意什么_安装python注意事项
  9. 机器人学--运动学基础概念
  10. html5鼠标右键事件,js鼠标右键点击事件
  11. winpe查看不到linux硬盘,winpe不显示硬盘?教你轻松搞定pe下不显示硬盘问题
  12. 通过qmh启动qt应用
  13. 操作系统学习笔记十二(基于分页的虚拟存储系统)
  14. Rust - 常用的三方库集合
  15. SOS1 Ras GEF蛋白高纯度测定
  16. Acwing 1191. 家谱树 (topsort
  17. Qt-------->第六天,Qt高级编程
  18. Python——组合数据类型的应用_1.英文句子中的词频统计
  19. HM代码阅读3:AMVP候选填充函数Void TComDataCU::fillMvpCand ()
  20. 豆瓣电影排行榜下载,main主文件代码(未完善版)

热门文章

  1. hdu 4747 Pet
  2. STM32的IAP在线升级
  3. 人工智能课程设计——八皇后问题的求解算法比较
  4. python清屏幕_如何在python中清除屏幕?
  5. C++中的指针类型与构造函数,析构函数
  6. FLV格式文件如何转换成MP4格式
  7. 中国移动手机阅读基地社会招聘笔试面试全过程
  8. 发光二极管压降、电流
  9. 常用的计算机网络设备有,常用网络设备有哪些,初学者必须要知道的五大网络设备...
  10. [杂谈]金克木:《与小说对话:不败求败》