Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As LongPrivate Declare Function FindWindow _
                Lib "user32" _
                Alias "FindWindowA" (ByVal lpClassName As String, _
                                     ByVal lpWindowName As String) As Long
Private Const SWP_HIDEWINDOW = &H80
Private Sub Timer1_Timer()
    Dim hwnd_ As Long    hwnd_ = FindWindow(vbNullString, "1.txt - 记事本")    Call SetWindowPos(hwnd_, 0, 0, 0, 0, 0, SWP_HIDEWINDOW)End Sub
监控某个程序,一旦打开即将其隐藏, 但是窗口总会闪一下...怎样做到在它的窗口显示之前就隐藏起来呢?

解决方案 »

  1.   

    可以通过HOOK WM_NCCREATE消息处理啊,不过跨进程我没试过,没这代码:(
      

  2.   

    希望窗体不闪烁、最好的办法就是hook api(showwindow)(或者消息钩子也可以尝试)、否则使用timer检测、他并不是实时的、哪怕间隔在短、也必然是有间隙的
      

  3.   

    使用钩子处理WM_CREATE消息,在此消息里取消窗口的WS_VISIBLE风格。