Página 1 de 1
Uso de teclado no PrinterSetup
Enviado: 02 Dez 2005 17:55
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 ?
Enviado: 15 Dez 2005 00:37
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 :?)
Enviado: 15 Dez 2005 11:23
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.
Enviado: 15 Dez 2005 21:59
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 :?)
Enviado: 19 Dez 2005 17:02
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 ?