Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: dPix en 23 Diciembre 2006, 14:21 pm



Título: Traer al frente de la ventana una en concreto
Publicado por: dPix en 23 Diciembre 2006, 14:21 pm
Pués como lo que pone en el asunto, ¿me pueden decir el método más simple de buscar una ventana en la barra de inicio y mandarla al primer plano? Supongo que será con el handle de la ventana o algo pero no me sale. Gracias de antemano  :)

dPix. Felices fiestas!

He encontrado lo que buscaba:

Código:
Private Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long

Private Sub Command3_click()
    Dim iret, THandle As Long
    THandle = FindWindow(vbEmpty, "Nombre de la ventana")
    iret = BringWindowToTop(THandle)
End Sub

Pero, ¿sabéis si hay alguna función integrada en VB para hacerlo?


Título: Re: Traer al frente de la ventana una en concreto
Publicado por: CeLaYa en 23 Diciembre 2006, 14:44 pm
usa la api FindWindow

Código:
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

Private Sub Command1_Click()
    Dim WinWnd As Long, Ret As String, RetVal As Long, lpClassName As String
    'Nombre de la ventana
    Ret = "Nombre de la ventana"
    'Búsca la ventana
    WinWnd = FindWindow(vbNullString, Ret)
    If WinWnd = 0 Then MsgBox "kp2 no la encontré  ...": Exit Sub
    'te la muestra
    ShowWindow WinWnd, 0
    ShowWindow WinWnd, 1   
End Sub

se supone que solo basta con escribir "ShowWindow WinWnd, 1", pero aveces no lo hace correctamente por eso agrego "ShowWindow WinWnd, 0"


Título: Re: Traer al frente de la ventana una en concreto
Publicado por: dPix en 23 Diciembre 2006, 18:57 pm
Yo decía que lo integrara VB, pero ya está arreglado con el que dije. Gracias de todas formas :D


dPix