Uso de teclado no PrinterSetup

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

Jorge Adourian
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 05 Jul 2004 23:38
Localização: São Paulo-SP-Brasil
Contato:

Uso de teclado no PrinterSetup

Mensagem por Jorge Adourian »

Quando chamamos o printersetup() conforme o código abaixo:

Código: Selecionar todos

PRINT oprn NAME OEMTOANSI(TITULO) PREVIEW MODAL

oPrn:Setup()
aparece a janela de seleção e configuração da Impressora, porém se tentarmos acionar o ENTER ele não funciona, tem que usar o mouse.

Alguma solução para isto ?
Até...
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Como o tela de setup e impressora é comun, ou seja, common dialog do Windows ela obedece a programação do próprio Windows.

Talvez se voce tentasse usar comandos que simulem o teclado para dar alguns tabs até chegar ao botão OK.

@braços :?)
Jorge Adourian
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 05 Jul 2004 23:38
Localização: São Paulo-SP-Brasil
Contato:

Mensagem por Jorge Adourian »

Rochinha, mesmo tentando isto manualmente por teclado o TAB não responde, o problema é que o Foco não fica nesta janela.
Até...
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

Então faça o seguinte:

Tente usar a classe tCapture, ela irá capturar a janela que voce quizer, ai basta tentar os comandos de teclado.

Trecho de programa que usa a classe:

Código: Selecionar todos

//-Chamar a Calculadora do Windows---------------------------------------//
FUNCTION Set_Calc() // Para que ela se abra somente uma vez
                    // Usa-se TWCapture.prg www.dbwide.com.ar
                    // ca-windows.prg baixei pela Internet.
    LOCAL oWCalc:=TWCapture():New("Calculadora")
    IF oWCalc:lCaptured
       oWCalc:Restore()
       oWCalc:GoTop()
    ELSE
       WinExec("Calc.Exe")
    ENDIF
    RETURN (NIL)
Classe completa:

Código: Selecionar todos

//----------------------------------------------------------------------------//
//  AUTOR.....: Manuel Exp¢sito Su rez    Soft 4U '2001                       //
//  e-Mail....: maex14@dipusevilla.es                                         //
//  CLASE.....: TWCapture                                                     //
//  FECHA MOD.: 18/08/2001                                                    //
//  VERSION...: 1.00                                                          //
//  PROPOSITO.: Captura una ventana abierta por nuestro programa o por otra   //
//              aplicacion para poder enviarle mensajes como si fuera una     //
//              ventana mas de nuestro programa.                              //
//----------------------------------------------------------------------------//
//  DATAS.....: * lCapture tiene un valor logico, .f. si la ventana no se     //
//              pudo capturar y .t. si si se hizo                             //
//                                                                            //
//  METODOS...: * New( cTitle ) es el constructor, cTitle es el titulo de una //
//              ventana, si se le pasa intentara capturarla y pondra .t. en   //
//              ::lCapture                                                    //
//              * WCapture se encarga de buscar la ventana y asignarla a      //
//              nuestro objeto TWindow. Si la captura podremos interactuar    //
//              como si fuera una ventana mas de nuestra aplicacion           //
//                                                                            //
//  NOTAS.....: TWCapture esta heredada de TWindows por lo que tendremos a    //
//              nuestra disposicion todas las datas y metodos de esta clase.  //
//              No distingue entre mayusculas y minuscula pero si se tienen   //
//              en cuenta los espacios                                        //
//----------------------------------------------------------------------------//

#include "Objects.ch"

//----------------------------------------------------------------------------//
CLASS TWCapture FROM TWindow
    DATA lCaptured  AS BOOL
    METHOD New( cTitle ) CONSTRUCTOR
    METHOD WCapture( cTitle )
ENDCLASS

//----------------------------------------------------------------------------//
METHOD New( cTitle ) CLASS TWCapture
    if( ValType( cTitle ) == "C", ::WCapture( cTitle ), ::lCaptured := .f. )
    return( Self )

//----------------------------------------------------------------------------//
METHOD WCapture( cTitle ) CLASS TWCapture
   local hWnd := FindWindow( 0, cTitle )
   ::lCaptured := ( hWnd > 0 )
   ::hWnd := if( ::lCaptured, hWnd, 0 )
   return( ::lCaptured )

//----------------------------------------------------------------------------//
@braços :?)
Jorge Adourian
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 05 Jul 2004 23:38
Localização: São Paulo-SP-Brasil
Contato:

Mensagem por Jorge Adourian »

Rochinha, eu imaginei algo mais simples, mas não sei como fazer.

Deve ter alguma função no FiveWin que permita selecionar outra janela equivalente ao <ALT><TAB>, você sabe como seria ?
Até...
Jorge Adourian
Clipper5.2e, Blinker7.0, SIX2(NSX), ADS7.1, FW2.3c, PrintFile2.1.5 e PDFCreator0.8.0(2)
Responder