Thwnd = FindWindow("消息窗口", "")
Call SetWindowPos(Thwnd, 0, 0, 0, 0, 0, SWP_HIDEWINDOW)
以为如何

解决方案 »

  1.   

    用 showwindow 可以整个隐藏,这个我知道我要的是“只把它在任务栏上的按钮隐藏”修改.exe 的资源文件可以做到我要的是用vb 代码做到这点清楚了么?
      

  2.   

    用 ResHack 我已经成功的修改了窗体的 style属性,也达到目的了但是问题是如何用 vb 代码实现??
      

  3.   

    用SetWindowLong设置窗口的风格、扩展风格以前做过,代码不记得放在哪了
      

  4.   

    找到了:
    http://expert.csdn.net/Expert/topic/848/848350.xml?temp=.4717218
      

  5.   

    没有用,我说了是在 form.show 之前设置才行现在要改的是别人的程序窗口就是说不可能让你先 hide ,然后再 show 出来和你的例子不一样比如 QQ 的发送消息对话框
      

  6.   

    办法肯定是有的...实在不行的话就hook...
    http://www.codeproject.com/shell/sweeptheminesweeper.asp
    看完这个例子...你想对其它进程的窗体怎么搞就怎么搞!!
      

  7.   

    VB的窗体不是有属性叫ShowInTaskbar吗,置为false就可以运行时不在任务栏上显示。
      

  8.   

    ShowWindow VB声明 
    Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long 
    说明 
    控制窗口的可见性(在vb里使用:针对vb窗体及控件,请使用对应的vb属性) 
    返回值 
    Long,如窗口之前是可见的,则返回TRUE(非零),否则返回FALSE(零) 
    参数表 
    参数 类型及说明 
    hwnd Long,窗口句柄,要向这个窗口应用由nCmdShow指定的命令 
    nCmdShow Long,为窗口指定可视性方面的一个命令。请用下述任何一个常数 
    SW_HIDE 隐藏窗口,活动状态给令一个窗口 
    SW_MINIMIZE 最小化窗口,活动状态给令一个窗口 
    SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态 
    SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态 
    SW_SHOWMAXIMIZED 最大化窗口,并将其激活 
    SW_SHOWMINIMIZED 最小化窗口,并将其激活 
    SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口 
    SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口 
    SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口 
    SW_SHOWNORMAL 与SW_RESTORE相同 
      

  9.   

    我想各位到现在还是没有明白我的意思如果我是用vb自己写程序,控制自己的窗体的话,我早就写完并调试通过了!!问题是,我要改变的是QQ的消息对话框!!!
      

  10.   

    这个我早试过了。确实可以隐藏窗口,但是它是把对话框也隐藏了,我要的只是任务栏上不出现,对话框本身还是可以用的那种要么我再试试这样:先用 ShowWindow 隐藏,然后修改属性,然后再显示。
      

  11.   

    现在发现理解果然是相对的:先用 ShowWindow 隐藏,然后修改属性,然后再显示。
    -----------------------------------------------
    http://expert.csdn.net/Expert/topic/848/848350.xml?temp=.4717218就是这样的
    是你没弄明白
    回复人: zyl910(910:分儿,我来了!) ( ) 信誉:100  2002-7-4 19:36:17  得分:0 
     
     
      
    改成这样就行了:
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_EXSTYLE As Long = (-20)
    Private Const WS_EX_APPWINDOW As Long = &H40000Private Sub Form_Click() '窗体点击时更改
        Static ShowFlags As Boolean
        Dim TempLng As Long
        
        Me.Hide '☆★☆隐藏☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
        
        TempLng = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
        If ShowFlags Then
            TempLng = TempLng Or WS_EX_APPWINDOW
        Else
            TempLng = TempLng And Not WS_EX_APPWINDOW
        End If
        Call SetWindowLong(Me.hwnd, GWL_EXSTYLE, TempLng)
        
        'Debug.Print ShowFlags
        
        ShowFlags = Not ShowFlags
        
        Me.Show '☆★☆显示☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
        
    End Sub
      

  12.   

    将me.hwnd改为用findwindow找出来的句柄就OK了..
      

  13.   

    zyl910(910:分儿,我来了!) :不好意思了,其实我们的理解都对,是我疏忽没有往那地方想了呵呵