Tbs
|
SAO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 02/02/2006 15:14 hs
Gostaria de saber como faço para exibir um messagebox por cima de todas as janelas abertas pelo usuário, mesmo que não sejam a aplicação. Obrigado!
|
|
|
|
|
Postada em 14/02/2006 14:35 hs
TBS, boa tarde.. O messagebox normalmente esta preso ao sistema que o executou. Para colocar independete do sistema, o que poderia ser feito é uma aplicação com apenas um form e chama-lo através de outra aplicação passando os parametros de mensagem desejado.. Não sei se valeria a pena tanto trabalho e se satisfaz a sua necessidade.. Talvez o sistema de mensagem do sistema operacional te atendar melhor.
|
|
|
vaini
|
PARAPUÃ SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 15/02/2006 11:57 hs
Voce pode criar um form, e usar o seguinte codigo: 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 Const SWP_FLAGS = 3 Private Const SWP_HWND_TOPMOST = -1 Private Const SWP_HWND_NOTOPMOST = -2 Public Sub AlwaysOnTop(myfrm As Form, SetOnTop As Boolean) Dim lFlag As Long If SetOnTop Then lFlag = SWP_HWND_TOPMOST Else lFlag = SWP_HWND_NOTOPMOST End If SetWindowPos myfrm.hwnd, lFlag, myfrm.Left / Screen.TwipsPerPixelX, myfrm.Top / Screen.TwipsPerPixelY, myfrm.Width / Screen.TwipsPerPixelX, myfrm.Height / Screen.TwipsPerPixelY, SWP_FLAGS End SubLAGS End Sub
Fernando Cesar VainiSe voce morrer daqui a 5 minutos, vai levar todo o seu conhecimento. Antes que isso aconteça, compartilhe-o!!!
|
|
|
Tbs
|
SAO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 15/02/2006 22:04 hs
Então amigos.... O problema é que a messagebox fica presa dentro do sistema mesmo, então se o usuário minimizou a aplicação ele não saberá se há alertas para ele (messagebox que o sistema dispara automaticamente para alertar o usuário sobre alguma situação). Para resolver isso, precisava que a messagebox aparecesse por cima de todos os programas/janelas que o usuário está visualizando. Utilizei uma API de para exibição do messagebox, dessa forma a janela do messagebox não fica vinculado ao programa que chamou a api (minha aplicação), no entanto estou precisando prencher o parâmentro chamado hwnd, pois acredito que sua finalidade seja definir a ordem de exibição das janelas. Alguém pode me dar uma luz???? Estive pensando também em criar um form para simular uma messagebox, mas também não consigo fazer com que ele apareça por cima de todos os programas/janelas abertos pelo usuário independente de pertencer ou não a minha aplicação.... Se alguém puder ajudar ou tiver alguma outra sugestão eu agradesço!!! Obrigado!
|
|
|
vaini
|
PARAPUÃ SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 16/02/2006 06:31 hs
O codigo que postei pra voce é exatamente isso.... Voce nem testou para saber se funcionava??? Voce cria um form, e coloca o codigo postado...e o form vai aparecer sempre acima de todos os outros, inclusive de outros programas.... Teste primeiro.................
Fernando Cesar VainiSe voce morrer daqui a 5 minutos, vai levar todo o seu conhecimento. Antes que isso aconteça, compartilhe-o!!!
|
|
|
|
Postada em 16/02/2006 08:36 hs
Bem, se for Visual Basic vc tem um recurso que é definir nos atributos da msgbox a constante vbSystemModal... fica assim: MsgBox "mensagem", vbSystemModal, Me.Caption Testa ai... nao precisa de API nenhuma...
Elieser Carlos Topassi Analista de Sistemas - Desenvolvedor VB/ASP/.Net
e-mail/msn: elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil _____________________________________________________ "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)
|
|
|
|