在TaskBar中隐藏工作进程的图标

时间:2013-02-06 10:32:07

标签: .net vb.net

如何隐藏vb.net任务栏中的工作流程图标?

Dim startInfo As New ProcessStartInfo("Some Process")
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden 'he hide only window of process
'startInfo.ShowInTaskbar = False 'don't work with System.Diagnostics and ProcessStartInfo
Pr = System.Diagnostics.Process.Start(startInfo)

我需要隐藏任务栏上的窗口和图标。 请帮忙。

1 个答案:

答案 0 :(得分:2)

我发现this post试图解决同样的问题:

Imports System.Diagnostics
Imports System.Runtime.InteropServices
Imports System.Windows.Forms

Module Module1

    Public GWL_EXSTYLE As Integer = -20
    Public WS_EX_APPWINDOW As Integer = &H40000

    <DllImport("user32.dll")> _
    Public Function GetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer) As Integer
    End Function

    <DllImport("user32.dll")> _
    Public Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
    End Function

    <DllImport("user32.dll", SetLastError:=True)> _
    Public Function SetParent(ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As IntPtr
    End Function

    Sub Main()

        ' Start your process
        Dim startInfo As New ProcessStartInfo("YourProcessName")
        startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden
        Dim p as Process = System.Diagnostics.Process.Start(startInfo)            

        ' Hide the process from the task bar
        Dim style As Integer = (GetWindowLong(p.MainWindowHandle, GWL_EXSTYLE) And Not WS_EX_APPWINDOW)
        SetWindowLong(p.MainWindowHandle, GWL_EXSTYLE, style)
        SetParent(p.MainWindowHandle, New Form().Handle)

    End Sub

End Module