Maximizar ou focar tela
Moderador: Moderadores
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
Maximizar ou focar tela
Bom dia...
Estou com um problema, que é o seguinte...
Desenvolvi uma rotina que usando o TIMER, ela checa se de X em X segundos, se alguém esta pedindo autorização para fazer determinada função no sistema, então funciona assim... o usuário que tenta entrar em determinada função do sistema e não tem autorização para tal, o sistema detecta isso e pergunta para quem ele quer pedir autorização daquela função, o sistema por sua vez, verifica se existe algum usuário que pode autorizar e no terminal do usuário que vai autorizar aparece uma janela pedindo tal autorização... até ai, sem problemas, funciona perfeito e tudo mais... mas estou encontrando um problema, que é quando o usuário que vai autorizar, não esta focado no sistema, ou seja, ele esta no excel, por exemplo, fazendo outra coisa, o sistema esta carregado no terminal dele, mas não esta em primeira instância, digamos assim, então gostaria que quando o sistema detecta que alguém esta pedindo essa autorização, executa um determinado comando/função, que maximiza o sistema, sobrepõe o que o usuário esta fazendo e exiba a tela de pedido de autorização... será que existe algum comando para tal ??
F.Freire
Estou com um problema, que é o seguinte...
Desenvolvi uma rotina que usando o TIMER, ela checa se de X em X segundos, se alguém esta pedindo autorização para fazer determinada função no sistema, então funciona assim... o usuário que tenta entrar em determinada função do sistema e não tem autorização para tal, o sistema detecta isso e pergunta para quem ele quer pedir autorização daquela função, o sistema por sua vez, verifica se existe algum usuário que pode autorizar e no terminal do usuário que vai autorizar aparece uma janela pedindo tal autorização... até ai, sem problemas, funciona perfeito e tudo mais... mas estou encontrando um problema, que é quando o usuário que vai autorizar, não esta focado no sistema, ou seja, ele esta no excel, por exemplo, fazendo outra coisa, o sistema esta carregado no terminal dele, mas não esta em primeira instância, digamos assim, então gostaria que quando o sistema detecta que alguém esta pedindo essa autorização, executa um determinado comando/função, que maximiza o sistema, sobrepõe o que o usuário esta fazendo e exiba a tela de pedido de autorização... será que existe algum comando para tal ??
F.Freire
Editado pela última vez por Toledo em 26 Jun 2015 13:02, em um total de 1 vez.
Razão: O presente tópico foi movido da seção Harbour, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com o [x]Harbour.
Razão: O presente tópico foi movido da seção Harbour, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com o [x]Harbour.
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Maximizar ou focar tela
Como vc usa a Minigui, é mais fácil postar isso no forum da Minigui ou aqui no Pctoledo na sessão da Minigui.
Porque ?
Bem isso é uma característica da tela a ser apresentada do dialog em questão.
Na Hwgui algo como:
STYLE WS_POPUP + WS_VISIBLE + WS_CAPTION ...
Ou vc poderá usar e/ou criar um programa na barra de tarefas, para ficar monitorando o arquivo e quando tiver algo ele aparecer.
Mas essas coisas são recursos das libs gráficas.
Saudações,
Itamar M. Lins Jr.
Porque ?
Bem isso é uma característica da tela a ser apresentada do dialog em questão.
Na Hwgui algo como:
STYLE WS_POPUP + WS_VISIBLE + WS_CAPTION ...
Ou vc poderá usar e/ou criar um programa na barra de tarefas, para ficar monitorando o arquivo e quando tiver algo ele aparecer.
Mas essas coisas são recursos das libs gráficas.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
Maximizar ou focar tela
Como sempre, atencioso as questões, obrigado Itamar...
Pensei até em gerar um tray, mas dai tem aquela questão, de tratar 2 aplicativos, o usuário acaba, desligando e fala que não ta funcionando, tem também alguns aplicativos de limpeza que detectam como malware ou limpeza e o usuário pede para tirar e por ai vai... então preferi tratar tudo dentro da mesma aplicação... O que preciso mesmo é quando ver que tem pedido de autorização executar algum comando/função para maximizar ou focar o sistema que estaria aberto em segundo plano, será que não tem nada para tal ?
F.Freire
Pensei até em gerar um tray, mas dai tem aquela questão, de tratar 2 aplicativos, o usuário acaba, desligando e fala que não ta funcionando, tem também alguns aplicativos de limpeza que detectam como malware ou limpeza e o usuário pede para tirar e por ai vai... então preferi tratar tudo dentro da mesma aplicação... O que preciso mesmo é quando ver que tem pedido de autorização executar algum comando/função para maximizar ou focar o sistema que estaria aberto em segundo plano, será que não tem nada para tal ?
F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Maximizar ou focar tela
Tem, eu e que não sei. rsrsrsr
Tem uma pasta na Minigui do Filatov...
Esse TOPMOST ai...
No caso está na pasta samples\advanced\desknote
Saudações,
Itamar M. Lins Jr.
Tem uma pasta na Minigui do Filatov...
Código: Selecionar todos
IF lOnTop
DEFINE WINDOW &cForm ;
AT aNotes[nForm][IDX_FORM_ROW] + GetTitleHeight() + 44, aNotes[nForm][IDX_FORM_COL] + 4 ;
WIDTH 200 HEIGHT 200 ;
CHILD ;
TOPMOST ;
NOCAPTION NOSIZE ;
ON INIT lExit := .F. ;
ON RELEASE ( nRow := GetProperty( cForm, 'Row' ) - GetTitleHeight() - 44, ;
nCol := GetProperty( cForm, 'Col' ) - 4, CloseNote( cForm ) ) ;
ON PAINT SetProperty( cForm, 'Label_1', 'Value', cText ) ;
ON MOUSECLICK MoveActiveWindow()
ELSE
DEFINE WINDOW &cForm ;
AT aNotes[nForm][IDX_FORM_ROW] + GetTitleHeight() + 44, aNotes[nForm][IDX_FORM_COL] + 4 ;
WIDTH 200 HEIGHT 200 ;
CHILD ;
NOCAPTION NOSIZE ;
ON INIT lExit := .F. ;
ON RELEASE ( nRow := GetProperty( cForm, 'Row' ) - GetTitleHeight() - 44, ;
nCol := GetProperty( cForm, 'Col' ) - 4, CloseNote( cForm ) ) ;
ON PAINT SetProperty( cForm, 'Label_1', 'Value', cText ) ;
ON MOUSECLICK MoveActiveWindow()
ENDIF
No caso está na pasta samples\advanced\desknote
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
Maximizar ou focar tela
Eita cabra bom... dica certeira... :)Pos
Simplesmente alterei o tipo da janela de MODAL para CHILD e acrescentei TOPMOST... independente de onde o cara estiver, pipoca na tela o chamado... resolvido...!!!!
F.Freire
Simplesmente alterei o tipo da janela de MODAL para CHILD e acrescentei TOPMOST... independente de onde o cara estiver, pipoca na tela o chamado... resolvido...!!!!
F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
Maximizar ou focar tela
Realmente a dica ajudou bastante, resolveu, mas gerou outro problema, WINDOW do tipo CHILD, permite que eu acesse outras coisas, ja a MODAL, trava nela, dai ferrou, porque naquele momento o usuário não pode acessar outras funções... não tem a propriedade TOPMOST para MODAL... alguma outra opção ?? Podia até ser ficar piscando na barra de tarefa...sem abrir mesmo...
F.Freire
F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Maximizar ou focar tela
Ola!
Teste ai... Criar outra janela e setar!
Ou essas aqui...
http://www.hmgextended.com/files/manual/4325.htm
http://www.hmgextended.com/files/manual ... operty.htm
Saudações,
Itamar M. Lins Jr.
Teste ai... Criar outra janela e setar!
Código: Selecionar todos
SetProperty ( <WindowName>, TopMost, lTopMost )
http://www.hmgextended.com/files/manual/4325.htm
http://www.hmgextended.com/files/manual ... operty.htm
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Maximizar ou focar tela
Fabiano,
Veja o tópico abaixo:
viewtopic.php?f=4&t=9594&p=54453&hilit=pisca+exe#p54453
Nele tem uma FUNCTION PISCA_EXE() que pode testar, ela pisca na barra de tarefas do Windows.
Veja o tópico abaixo:
viewtopic.php?f=4&t=9594&p=54453&hilit=pisca+exe#p54453
Nele tem uma FUNCTION PISCA_EXE() que pode testar, ela pisca na barra de tarefas do Windows.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- FFreire
- Usuário Nível 3

- Mensagens: 113
- Registrado em: 19 Mai 2013 16:16
- Localização: Andirá-PR / Itaporanga-SP
Maximizar ou focar tela
Bom dia...
Agradeço a pronta colaboração, o que fiz foi o seguinte, usei a dica do Itamar e passei a usar o notifyicon, que cria um icone na área de notificações (perto do relógio), quando inicio o sistema, coloco na janela MAIN um icone padrão do sistema, (e tem que definir lá, pois não dá para mexer, depois que o sistema for iniciado), dai quando o timer verifica que tem solicitação para aquele determinado usuário, ele fica trocando o notifyicon, com um led verde e outro vermelho, causando assim o alerta ao usuário, aí assim que o usuário atender ou não a solicitação, volta o icone inicial, ficou bem bacana, (segue o código para demonstração), quanto a função pisca_exe em C, não consegui fazer funcionar, executei ela em determinado momento, mas não surtiu efeito algum, talvez não tenha usado da forma adequada, mas agradeço pela indicação... segue o código...
Portanto, agradeço ao Itamar e ao sygecom, pela atenção !!
Só uma opinião, como sempre (minha e sincera), vejo que muitos vem ao fórum, para simplesmente esperar que alguém diga como é que tem que fazer, tipo alguma coisa que caia do céu e ficam esperando cair do céu literalmente, acho que fórum, é realmente um tira dúvidas, uma troca de informações, agora tem que prevalecer o que vem de dentro de qualquer programador ou analista, que é o buscar, engenhar, criar, pegue a dica e melhore a dica, dai exponha para que outros possam melhorar ainda mais aquele seu antigo problema, e por ai vai, só assim, conseguiremos passar para novas etapas, vou dar um exemplo meu, eu tinha um sistema totalmente console com a antiga visual lib, comecei gerando um EXE 32 bits, depois usando DBFCDX/LetoDB, agora estou, parte do sistema postgreSql, parte do sistema console, parte gui...Enfim, com as leituras e buscas aqui e em outros lugares, fui juntando, pedacinho com pedacinho e estou nesse patamar, isso leva tempo, dedicação e o mais importante paixão pelo que faz, pois NÃO VAI CAIR DO CÉU, então mãos a obra !
F.Freire
Agradeço a pronta colaboração, o que fiz foi o seguinte, usei a dica do Itamar e passei a usar o notifyicon, que cria um icone na área de notificações (perto do relógio), quando inicio o sistema, coloco na janela MAIN um icone padrão do sistema, (e tem que definir lá, pois não dá para mexer, depois que o sistema for iniciado), dai quando o timer verifica que tem solicitação para aquele determinado usuário, ele fica trocando o notifyicon, com um led verde e outro vermelho, causando assim o alerta ao usuário, aí assim que o usuário atender ou não a solicitação, volta o icone inicial, ficou bem bacana, (segue o código para demonstração), quanto a função pisca_exe em C, não consegui fazer funcionar, executei ela em determinado momento, mas não surtiu efeito algum, talvez não tenha usado da forma adequada, mas agradeço pela indicação... segue o código...
Código: Selecionar todos
//--------------------------
STATIC FUNCTION NotificaPerm
//--------------------------
LOCAL nSet
nSet := GetProperty('Principal', 'NotifyIcon')
SetProperty( 'Principal', 'NotifyIcon', IIF(nSet=='IC__ON','IC__OFF','IC__ON') )
RETURN(NIL)
Só uma opinião, como sempre (minha e sincera), vejo que muitos vem ao fórum, para simplesmente esperar que alguém diga como é que tem que fazer, tipo alguma coisa que caia do céu e ficam esperando cair do céu literalmente, acho que fórum, é realmente um tira dúvidas, uma troca de informações, agora tem que prevalecer o que vem de dentro de qualquer programador ou analista, que é o buscar, engenhar, criar, pegue a dica e melhore a dica, dai exponha para que outros possam melhorar ainda mais aquele seu antigo problema, e por ai vai, só assim, conseguiremos passar para novas etapas, vou dar um exemplo meu, eu tinha um sistema totalmente console com a antiga visual lib, comecei gerando um EXE 32 bits, depois usando DBFCDX/LetoDB, agora estou, parte do sistema postgreSql, parte do sistema console, parte gui...Enfim, com as leituras e buscas aqui e em outros lugares, fui juntando, pedacinho com pedacinho e estou nesse patamar, isso leva tempo, dedicação e o mais importante paixão pelo que faz, pois NÃO VAI CAIR DO CÉU, então mãos a obra !
F.Freire
Harbour 3.2.0+MiniGui Extended 16.02+BCC5 / HWGdebug / SIXCDX / PostgreSQL 9.5 / LetoDB 2.15 / Java8
fabiano@ffsoft.com.br
fabiano@ffsoft.com.br