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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ¿Poner una ventana por delante de las demás?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ¿Poner una ventana por delante de las demás?  (Leído 4,482 veces)
Scratz


Desconectado Desconectado

Mensajes: 318



Ver Perfil
¿Poner una ventana por delante de las demás?
« en: 8 Septiembre 2006, 21:11 pm »

Creo que el título lo dice todo. No quiero que mi form esté siempre visible, sinó que una ventana esté activa (activa = la primera que tenemos). Ej: Apreto un botón de mi aplicación y la ventana de Internet Explorer (ya abierto) se pone la primera. Soy novato y no sé como hacer eso.


En línea

\\... The Revolution Is Comming ...//
NYlOn


Desconectado Desconectado

Mensajes: 842


OOOOHHHHHH, TARAGÜIIII xDDDDDD


Ver Perfil WWW
Re: ¿Poner una ventana por delante de las demás?
« Respuesta #1 en: 8 Septiembre 2006, 23:42 pm »

Si sos novato, lo primero que Debes hacer es aprender a busar. Hay una APIs que te pueden ayudar: SetWindowPos Te permite cambiar algunas propiedades de las ventanas. Lo unico que necesitas es el handle de la ventana (si se trata de tu aplicacion podes usar la propiead Formulario.Hwnd).


Saludos.-


En línea

Scratz


Desconectado Desconectado

Mensajes: 318



Ver Perfil
Re: ¿Poner una ventana por delante de las demás?
« Respuesta #2 en: 9 Septiembre 2006, 00:15 am »

Gracias, voy a ver si encuentro ejemplos de cómo usar eso.
En línea

\\... The Revolution Is Comming ...//
Scratz


Desconectado Desconectado

Mensajes: 318



Ver Perfil
Re: ¿Poner una ventana por delante de las demás?
« Respuesta #3 en: 9 Septiembre 2006, 00:33 am »

Lo que busco es SetActiveWindow. Pero no encuentro ejemplos entendibles de como usarlo.
En línea

\\... The Revolution Is Comming ...//
Scratz


Desconectado Desconectado

Mensajes: 318



Ver Perfil
Re: ¿Poner una ventana por delante de las demás?
« Respuesta #4 en: 9 Septiembre 2006, 00:44 am »

No, parece que el SetActiveWindow es para las ventanas de la misma aplicación. He encontrado un ejemplo de SetFocus pero lo q hace es ejecutar una aplicación mostrandola dentro del Form, cosa que no me sirve por que la aplicación ya tiene q estar ejecutada.
En línea

\\... The Revolution Is Comming ...//
yeikos


Desconectado Desconectado

Mensajes: 1.424



Ver Perfil
Re: ¿Poner una ventana por delante de las demás?
« Respuesta #5 en: 9 Septiembre 2006, 01:17 am »

Código:
'Module1.bas
Public Declare Function SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

' SetWindowPos Flags
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
'Const SWP_NOZORDER = &H4
'Const SWP_NOREDRAW = &H8
Public Const SWP_NOACTIVATE = &H10
'Const SWP_DRAWFRAME = &H20
Public Const SWP_SHOWWINDOW = &H40
'Const SWP_HIDEWINDOW = &H80
'Const SWP_NOCOPYBITS = &H100
'Const SWP_NOREPOSITION = &H200
Public Const SWP_FLAGS = SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE

Código:
'Form1.frm
Private Sub Form_Load()
SetWindowPos hWnd, -1, Screen.Height, Screen.Width, 0, 0, SWP_FLAGS
End Sub

En línea

Scratz


Desconectado Desconectado

Mensajes: 318



Ver Perfil
Re: ¿Poner una ventana por delante de las demás?
« Respuesta #6 en: 9 Septiembre 2006, 01:23 am »

No, yo me refiero a una ventana de otra aplicación. No de la mia.
En línea

\\... The Revolution Is Comming ...//
Scratz


Desconectado Desconectado

Mensajes: 318



Ver Perfil
Re: ¿Poner una ventana por delante de las demás?
« Respuesta #7 en: 9 Septiembre 2006, 01:24 am »

Sigo sin encontrarlo así que he optado por una chapuzilla.
En línea

\\... The Revolution Is Comming ...//
yeikos


Desconectado Desconectado

Mensajes: 1.424



Ver Perfil
Re: ¿Poner una ventana por delante de las demás?
« Respuesta #8 en: 9 Septiembre 2006, 02:01 am »

Te entendí mal, ahí tienes por si todavía te vale...

Código:
'Module1.bas
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

' SetWindowPos Flags
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
'Const SWP_NOZORDER = &H4
'Const SWP_NOREDRAW = &H8
Public Const SWP_NOACTIVATE = &H10
'Const SWP_DRAWFRAME = &H20
Public Const SWP_SHOWWINDOW = &H40
'Const SWP_HIDEWINDOW = &H80
'Const SWP_NOCOPYBITS = &H100
'Const SWP_NOREPOSITION = &H200
Public Const SWP_FLAGS = SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE

Código:
'Form1.frm
Private Sub Form_Load()
Ventana = FindWindow(vbNullString, "Nombre de la ventana")
SetWindowPos Ventana, -1, Screen.Height, Screen.Width, 0, 0, SWP_FLAGS
End Sub


En línea

Scratz


Desconectado Desconectado

Mensajes: 318



Ver Perfil
Re: ¿Poner una ventana por delante de las demás?
« Respuesta #9 en: 9 Septiembre 2006, 11:02 am »

Bien, así quedará más profesional. Pero no me hace nada (no me ha dado errores). No pasa nada cuando lo abres.
En línea

\\... The Revolution Is Comming ...//
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines