ANDRIL escreveu:estou usando a lib atraves da funcao GetMyHandle() e Window2Top() no WIN98 e nao consigo devolver o focus à janela ao chamar um aplicativo externo.
Nota: digo isso pq ao retornar da funcao Window2Top() e o aplicativo estando em tela cheia a barra da janela fica ativa porem o foco nao volta sendo necessario teclar ENTER, por isso, acho q se dentro (digo no final) da funcao vir acompanhada de ENTER acho q resolveria.
Eu acho que fazer uma alteração desse tipo iria influenciar no aplicativo em execução nos outros casos que o WAPI funciona perfeitamente em WINXP ou até mesmo em modo janelado do WIN98. Para isso tem uma solução bem simples.
1. Eu crio uma variável de ambiente que indica qual é a versão do SO. Se preferir utilizar alguma biblioteca para fazer uso da definição da versão do WINDOWS vai da sua pessoa. Eu por exemplo não tive 100% de bom resultado no uso de biblioteca, pois me dava algumas divergências (não me pergunte o por quê ?). Mas decidí utilizar o comando
VER do próprio Windows na linha de comando. Mas isso ja é outra questão que se precisar saber, podemos abordar mais tarde.
2. Uma vez que você de dentro da sua aplicação Clipper, identificar qual é o Ruindows utilizado, é dizer se for o WIN98, existe um aplicativo chamado Z.COM ora apresentado pelo Wagner que serve para identificar se a sessão está em modo JANELADO ou TELA-CHEIA (isso funciona somente para WIN98) e que você poderá conferir no seguinte link:
https://pctoledo.org/forum/viewto ... 3454#33454
3. Você sabendo que a aplicação está em TELA-CHEIA, dê uma mensagem em LOOPING pro usuário e que verifique se saiu dessa condição de TELA-CHEIA. Por tanto só irá pra frente até o usuário por si mesmo dar o ALT-ENTER.
Daí então, acho que irá funcionar perfeitamente para o seu caso, pois eu ja venho utilizando isto por causa de que não existe solução desse dilema. Bom seria se pudermos contar com uma opção no WAPI que desse o modo de exibição (em quaisquer versão do Windows). Mas isso é outro dilema... hihi