Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: hacksoft en 5 Septiembre 2005, 03:38 am



Título: Ayuda Una locura, creo que para expertos
Publicado por: hacksoft en 5 Septiembre 2005, 03:38 am
Miren tengo un problema, mas que todo el problema es de un grupo de compañeros mios, queremos que nuestra aplicacion nunca pierda el foco, creo q seria "setfocus", pero no queremos que pierda el foco aunque se  este usando otros programas, o otras ventanas, que siempre el foco este en la aplicación.

Me han comentado que lo han hecho en C++, pero bueno nose si se pudiera hacer en visual basic, espero ayuda.

Gracias


Título: Re: Ayuda Una locura, creo que para expertos
Publicado por: Slasher-K en 5 Septiembre 2005, 04:19 am
Código:
Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (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

Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1
Const SWP_NOOWNERZORDER = &H200     

Private Sub Form_Load()
  Call SetWindowPos(hWnd, -1, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOOWNERZORDER)
End Sub

Saludos.


Título: Re: Ayuda Una locura, creo que para expertos
Publicado por: Chief en 5 Septiembre 2005, 04:32 am
O tambien de una forma mas chonga podria ser con un timmer con un intervalo de 1 milisegundo y :

me.setfocus
 
esto en el timmer, pero claro que es mucho mejor el metodo que posteo Anhur.

expertos ? con una simpleda busqueda en google sale todo.

SAlu2!!


Título: Re: Ayuda Una locura, creo que para expertos
Publicado por: hacksoft en 5 Septiembre 2005, 04:51 am
Gracias por la ayuda, pero ese no es el caso


Título: Re: Ayuda Una locura, creo que para expertos
Publicado por: Numeros en 5 Septiembre 2005, 05:13 am
Si lo que deseas es que tu Form este siempre por encima de todas las demas ventanas de windows usa este

Código:
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const FLAGS As Long = SWP_NOMOVE Or SWP_NOSIZE
Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2

Private 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
   
Private Sub Form_Load()
SetWindowPos Me.hwnd, _
    HWND_TOPMOST, 0, 0, 0, 0, FLAGS
End Sub

Perdon, no me fije que era el mismo code de Anhur

Salud2


Título: Re: Ayuda Una locura, creo que para expertos
Publicado por: farder en 5 Septiembre 2005, 19:22 pm
Yo con el SetWindowPos e jugado con el, pero lo que intenté sin exito es hacer que mi aplicacion se mantenga justo por encima del escritorio y no sobre las otras ventanas, tipo desktopX para win o Superkaramba para linux.

mi duda es saver si.. ¿esto es posible con el SetWindowPos?

Gracias de antemano.