Hay algún equivalente en .NET a App.Taskvisible = False

Iniciado por bybaal, 13 Marzo 2016, 23:19 PM

0 Miembros y 1 Visitante están viendo este tema.

bybaal

Lo importante es que la aplicación se ejecute en segundo plano, o sea, que en el administrador de tareas no salga en el listado de aplicaciones y que si salga en el listado de procesos en segundo plano. Algo que ocurre automaticamente en VB6 al usar App.Taskvisible = False, pero en .NET no se como sería.

Gracias
por todas las ideas

bybaal

Este código me resuelve el problema, pero si alguien lo puede mejorar o tiene otra idea, bienvenida sea

Código (vbnet) [Seleccionar]

    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Integer, ByVal nCmdShow As Integer) As Integer
    Private Const SW_HIDE = 0
    Private Const SW_SHOW = 5

    Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click
        Dim h As Long
        h = FindWindow(vbNullString, "Form1")
        If h > 0 Then
            ShowWindow(h, SW_HIDE)
            Sleep(20000)
            ShowWindow(h, SW_SHOW)
        End If
    End Sub


Eleкtro

Es suficiente con que a la ventana le asignes el estilo de ventana extendido WS_EX_TOOLWINDOW, puedes hacerlo mediante la API de Windows con las funciones SetWindowLong o SetWindowLongPtr dependiendo de la arquitectura, o con la propiedad FormBorderStyle del Form:

Me.FormBorderStyle = FixedToolWindow

Esto conlleva unos cambios visuales en la ventana con los que puede que tengas que hacer más trabajo del necesario si no te agrada lo suficiente (me refiero a lidiar con el area no cliente de la barra de título para añadir más botones).

Saludos!