¿como oculto un programa en vb.net? Leido 14.598 veces

 
  Broco
Por ejemplo, tengo el photoshop abierto y quiero que desde mi aplicación de vb.net lo oculte.. de la barra de tareas y evidentemente que esconda la ventana... me.visible = false xD
 

 





  <EmilianO>
en vb .net 2005 y es bastante facil
io.File.SetAttributes( path as String, fileAttributes As System.IO.FileAttributes)

un ejemplo seria
io.File.SetAttributes("C:\Prueba\Imagen.jpg", IO.FileAttributes.Hidden)

Solo busque en internet :D .Nose mucho de esas clases de programas .
Espero que te sirva .
Salu2

 

 


  Broco
Eso es para cambiarle la propiedad a archivos, necesito ocultar programas abiertos..
 

 


  <EmilianO>
Te dije que no se nada de eso xD . acá vi uno que dice que oculto el inicio de windows .
Click :)
Espero que sea .
Salu2

 

 


  Jesús
Ha recibido:
1 premios

Primero tienes que sacar el Handle de la ventana, si sabes el título exacto de la ventana puedes usar el API Findwindow, si no lo sabes tendrás que hacer un EnumWindows para listar todas las ventanas visibles y localizarla.


Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer


En tu caso que quieres ocultar una ventana concreta lo mejor es buscar el nombre de la clase con el Spy++, por si no lo conoces el Spy++ es un programa que viene con el visual studio para espiar ventanas y scar su información.

Acabo de espiar la ventana de Photoshop y la clase se llama igual que el programa "Photoshop", por lo que podes usar FindWindow para sacar el Handle de la ventana:


Dim ElHandle As IntPtr  = FindWindow ("Photoshop", vbNullString)


Una vez tenemos el handle, sólo hay que mandarle un mensaje a la ventana para que se oculte


<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _ 
Private Shared Function ShowWindow(ByVal hwnd As IntPtr, ByVal nCmdShow As Int32) As Boolean 
End Function 

ShowWindow(hwnd, 0)



El 0 es el valor constrante de SW_HIDE


 

 





  Broco
Genial dejo como me quedo el codigo..
donde pone Toycon se pone el nombre que sale en la barra de tareas...

Imports System.Runtime.InteropServices

Public Class Form1

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer

<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Private Shared Function ShowWindow(ByVal hwnd As IntPtr, ByVal nCmdShow As Int32) As Boolean

End Function

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim ElHandle As IntPtr = FindWindow("ToyCon", vbNullString)
ShowWindow(ElHandle, 1)
End Sub
End Class


 

 


  Jesús
Asgurate de poner las definiciones en la clase y las llamadas en un método:

Mete esto el en load:


Dim ElHandle As IntPtr  = FindWindow ("Photoshop", vbNullString)
ShowWindow(ElHandle , 0)


 

 





    ¿Cuantas columnas?     | 2 columnas | 3 columnas | 4 columnas | 5 columnas | 6 columnas |  
    Escribe la dirección web de la imagen:
  Publica tu respuesta  |  Haz Click en el siguiente cuadro para escribir