一个窗口应用程序,我先后尝试了一下方法:
1.使用ShellExecuteEx启动,并且SHELLEXECUTEINFO的nShow属性设置为SW_HIDE,隐藏失败
2.使用CreateProcess,并且STARTUPINFO的wShowWindow属性设置为SW_HIDE,隐藏失败
3.使用ShellExecute,最后一个参数设置SW_HIDE,隐藏失败尝试了其他的程序,包括windows自带的计算器和控制台程序以上三种方法都能隐藏,但是我要用的这个程序有点奇怪,隐藏不了,请问有没有其他方法能在启动之后隐藏窗口

解决方案 »

  1.   

    this->ShowWindow(SW_HIDE);  隐藏
    this->ShowWindow(SW_SHOW);  显示
      

  2.   

    估计那程序运行过程中有showwindow的动作
      

  3.   

    定时器 向窗口发送隐藏消息WM_SHOWWINDOW试试看, 可能那个程序在自子调用显示,或是过滤了隐藏消息如果最小化或拖到屏幕之外不影响其他使用的话,也可以MoveWindow 或 SetWindowPos 修改其窗口位置
      

  4.   

    注入后,将其子类化,处理WM_WINDOWPOSCHANGING,让它连显示的机会都没有,这样就不会闪了