请问,有什么方法可以将原本一个程序,在他运行时不让他显示在任务栏上,
就是比如现在有一个应用程序,(别人写的,没有源代码),我运行他时不想看到他,就是运行时不显示在任务栏上,但他原来正常运行时是显示在任备栏上的,我现在要编写一段代码,来运行这个程序,但我自已的程序无所谓,只要在任务栏上看不到那个运行的程序就可以了!比如说,我下了一个应用程序:A,他运行时是显示在任务栏上的,我现在怎么样调用这个A程序,使他运行,但不显示在任务栏上,不知道我这样说你们能否明白,如果在程序上实现不了的话,有没有别的实现方法,只要能实现就行,高手请帮忙,谢谢,最好能给出源码,谢谢,
就是比如现在有一个应用程序,(别人写的,没有源代码),我运行他时不想看到他,就是运行时不显示在任务栏上,但他原来正常运行时是显示在任备栏上的,我现在要编写一段代码,来运行这个程序,但我自已的程序无所谓,只要在任务栏上看不到那个运行的程序就可以了!比如说,我下了一个应用程序:A,他运行时是显示在任务栏上的,我现在怎么样调用这个A程序,使他运行,但不显示在任务栏上,不知道我这样说你们能否明白,如果在程序上实现不了的话,有没有别的实现方法,只要能实现就行,高手请帮忙,谢谢,最好能给出源码,谢谢,
不影响使用
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Sub Command1_Click()
Dim ihwnd As Longihwnd = FindWindow(vbNullString, "你那个需要隐藏的程序的窗口标题")
Call ShowWindow(ihwnd, 0)
End Sub
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Const WS_POPUP = &H80000000
Private Const GWL_STYLE = (-16)
Private Const WS_EX_APPWINDOW = &H40000
Private Const GWL_EXSTYLE = (-20)
Private Const SW_HIDE = 0
Private Const SW_SHOW = 5
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As LongPrivate Sub Command1_Click()
Dim winstyle As Long
Dim hwndParent As Long
Dim childhwnd As Long
childhwnd = FindWindow(vbNullString, "Form1")
winstyle = GetWindowLong(childhwnd, GWL_EXSTYLE)
winstyle = winstyle And Not WS_EX_APPWINDOW
ShowWindow childhwnd, SW_HIDE ' 一定要先隐藏然后显示
SetWindowLong childhwnd, GWL_EXSTYLE, winstyle
ShowWindow childhwnd, SW_SHOW
End Sub'弄了半天才搞定的,因为API viewer 里面没有WS_EX_APPWINDOW,后面跑到VC里面才找到它的值