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
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.
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!!
Gracias por la ayuda, pero ese no es el caso
Si lo que deseas es que tu Form este siempre por encima de todas las demas ventanas de windows usa este
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
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 saber si.. ¿esto es posible con el SetWindowPos?
Gracias de antemano.