除了用下面这两个函数得到激活窗口的句柄,然后跟自己窗口的句柄比较。
GetForegroundWindow
GetActiveWindow这个isActiveWindow 好像也可以吧。请问大家还有其他的方法吗?

解决方案 »

  1.   

    敢问 有isActiveWindow这个函数么?
      

  2.   

    给自己的窗口添加WM_ACTIVE函数OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) 然后设置一个成员变量isActive=nState;判断isActive就可以
      

  3.   

    SetWindowPos(..., SWP_NOACTIVATE);
      

  4.   

    用keybd_event模拟键盘输入,看自己是否收到相应的消息。
      

  5.   

    我也凑个热闹
    可以枚举桌面窗口
    这样可以得到窗口的z_order
    不过即便自己的窗口在最前面也不能保证是激活窗口
    还是得判断一下
      

  6.   

    屏蔽别人在后台操作我的程序 我觉得不是窗口激活不激活的问题
    如果你的目的只是不让别人操作你的程序,那么你应该尝试防止别人取得你的窗体指针以及窗体句柄
    用hook的方法躲掉FindWindow,EnumWindow等API的检测或许是一种办法
      

  7.   

    我觉得应该就是这个了:GetForegroundWindow
      

  8.   

    窗口回调里面判断 自己是否是在active 如果不是 就不往下执行了.
      

  9.   

    GetActiveWindow比较正统,其他的方式就是相应WM_SETFOCUS、WM_ACTIVATE甚至WM_WINDOWPOSCHANGED这些消息。
      

  10.   

    刚好也需要用到这方面的东西,我现在就用的GetActiveWindow  也想知道到底还有哪些方法!顶一个!
      

  11.   

    奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
    用API WriteProcessMemory还能修改正运行的其它进程的内存里面的所谓常量呢!