Eu sei que este assunto ja foi discutido e acho que ainda não tem uma solução adequada para o caso de usuario alternar o modo de exibição da tela cheia para modo janelado. Isto é de muita importancia quando queremos utilizar dentro dos nossos sistemas em Clipper, aplicativos for Windows (por exemplo o Internet Explorer do Windows, Word para Mala direta, Excel para gráficos estatisticos, dial-up, etc...). Mas pra isso o usuários tem que estarem atentos para passar sua tela para modo janelado, caso contrario a janela ativa ficará minimizada e certos usuários tentam abrir novas sessões do sistema. Isto é ficam perdidos não sabendo o resultado em tela após execução do aplicativo Windows.
Para isto pensei em uma possível solução, porém eu não domino nenhuma linguagem que trate em baixo nível.
Minha idéia seria:
Objetivo: Avisar ao usuário para alternar entre janela modo "JANELADO" e modo "TEXTO".
Mas pra isto, se encontrassemos uma alma caridosa que seja programador em liguagem "FOR WINDOWS", e solicitar que desenvolva um aplicativo com as seguintes caracteristicas:
1. Não precisa exibir algo na tela. (O que evitaria mudar em modo gráfico).
2. Ao ser chamado (o aplicativo), verificar em que modo está sendo executado: "MODO JANELADO" ou "NÃO"
3. Criar um arquivo NUL com o nome de acordo ao resultado da opção 2. Digamos então: criar arquivo JANELADO.SCR ou TEXTO.SCR
Pois então, com a criação destes arquivos, poderiamos gerenciar avisos ao usuários para pressionar as teclas <ALT> <ENTER> cada vez que tenha que alternar de cada aplicativo "MODO GRAFICO" a "MODO TEXTO", e não deixar executar até que se adequem as o modo de exibição das janelas.
Encontrei no CD do Wagner, este codigo fonte que é parte da biblioteca OSLIB e para quem domina a linguagem C, achei que poderia ser util:
Código: Selecionar todos
/*
* File......: AUTYIELD.C
* Author....: Dave Pearson
*/
#include <extend.api>
#pragma optimize("lge", off)
/* $DOC$
* $FUNCNAME$
* OL_WinFullScreen()
* $CATEGORY$
* Functions
* $ONELINER$
* Force a DOS window into full screen mode.
* $SYNTAX$
* OL_WinFullScreeen() --> NIL
* $ARGUMENTS$
* None.
* $RETURNS$
* Nothing.
* $DESCRIPTION$
* This function can be used to force your application into full
* screen mode when running under MS Windows. It should work
* correctly for Windows 3.x and Windows 95.
* $EXAMPLES$
* OL_WinFullScreen()
* alert( "Boo!" )
* $SEEALSO$
*
* $END$
*/
CLIPPER OL_WinFull/*Screen*/( void )
{
_asm {
Mov AX, 0x168B;
Mov BX, 0;
Int 0x2F;
}
_ret();
}Pablo

