elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Traer al frente de la ventana una en concreto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Traer al frente de la ventana una en concreto  (Leído 4,909 veces)
dPix

Desconectado Desconectado

Mensajes: 222


¬_¬ - ¬O.o


Ver Perfil
Traer al frente de la ventana una en concreto
« 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?


« Última modificación: 23 Diciembre 2006, 14:27 pm por dPix » En línea

CeLaYa


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: Traer al frente de la ventana una en concreto
« Respuesta #1 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"


En línea

"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.
dPix

Desconectado Desconectado

Mensajes: 222


¬_¬ - ¬O.o


Ver Perfil
Re: Traer al frente de la ventana una en concreto
« Respuesta #2 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
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Que consecuencia puede traer usar el micro al 100%
Hardware
Ershin 8 6,247 Último mensaje 16 Enero 2011, 20:22 pm
por Randomize
tcp frente ftp
Redes
Pirat3net 4 5,042 Último mensaje 18 Mayo 2011, 15:40 pm
por Pirat3net
Evitar que una ventana pase al frente inmediatamente se presiona clic
GNU/Linux
Aikanáro Anário 0 2,219 Último mensaje 26 Marzo 2012, 02:47 am
por Aikanáro Anário
Voten para traer de nuevo a VB6!!!
Programación Visual Basic
79137913 2 1,848 Último mensaje 14 Febrero 2014, 19:48 pm
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines