Ocultar una ventana

Iniciado por NYlOn, 7 Marzo 2006, 22:10 PM

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

NYlOn

Hola a todos, mi problema es el siguiente:
Necesito ocultar una ventana y que esta tampoco aparezca en la barra de tareas. El problema es que tambien necesito que el todo siga funcionando, por lo que no puedo cerrarla con APIs.
Se como mover otras ventanas, activarlas o desactivarlas, cambiar el tamaño, pero no encuentro ninguna API para ocultarla. Intente iniciar la ventana dentro de mi programa pero el problema es que se trata de una ventana de conversacion del MSN y no se como hacerlo.

Espero que alguien pueda ayudarme, gracias de antemano.-

.Slasher-K.

ShowWindow

Obtenés el handle con FindWindow si conocés el nombre de la clase, o la buscas con EnumWindows y GetWindowText, después es sencillo:


Call ShowWindow(hWnd, vbHide)  ' vbHide = SW_HIDE = 0


Pitoniso

Corre este codigo y modificalo...a tu gusto..

Salu2

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_SHOWNORMAL = 1
Const WM_CLOSE = &H10
Const gcClassnameMSWord = "OpusApp"
Const gcClassnameMSExcel = "XLMAIN"
Const gcClassnameMSIExplorer = "IEFrame"
Const gcClassnameMSVBasic = "wndclass_desked_gsk"
Const gcClassnameNotePad = "Notepad"
Const gcClassnameMyVBApp = "ThunderForm"
Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim WinWnd As Long, Ret As String, RetVal As Long, lpClassName As String
    'Ask for a Window title
    Ret = InputBox("Enter the exact window title:" + Chr$(13) + Chr$(10) + "Note: must be an exact match")
    'Search the window
    WinWnd = FindWindow(vbNullString, Ret)
    If WinWnd = 0 Then MsgBox "Couldn't find the window ...": Exit Sub
    'Show the window
    ShowWindow WinWnd, SW_SHOWNORMAL
    'Create a buffer
    lpClassName = Space(256)
    'retrieve the class name
    RetVal = GetClassName(WinWnd, lpClassName, 256)
    'Show the classname
    MsgBox "Classname: " + Left$(lpClassName, RetVal)
    'Post a message to the window to close itself
    PostMessage WinWnd, WM_CLOSE, 0&, 0&
End Sub

NYlOn

Pitoniso ese code ya lo habia provado, lo que hace es cerrar completamente la aplicacion, por lo que no me sirve.
Slasher prove con esa API y funciona perfectamente. Yo creia que era solo para mostrar ventanas xD. Muchisimas gracias por su ayuda.

Saludos.-