A ver si esto te sirve, sino chifla, lo saque del baúl
Codigo clipper
PROCEDURE ImpComInit()
IF ValRunMode()
RunMode()
SetImpresora()
ArcOpen()
DO WHILE Entry()
Proceso()
ENDDO
ArcClose()
ENDIF
FUNCTION ValRunMode()
*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*
LOCAL lRetVal := .T.
IF UPPER( RIGHT( RTRIM( cDrvMode ), 1 ) ) == "\"
IF ! FILE( RTRIM( cDrvMode ) + "MODE.COM" )
MensMode()
lRetVal := .F.
ENDIF
ELSE
IF ! FILE( UPPER( RTRIM( cDrvMode ) ) + "\" + "MODE.COM" )
MensMode()
lRetVal := .F.
ENDIF
ENDIF
PROCEDURE MensMode()
*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*
NueAlert(
;
"; No Existe el Archivo MODE.COM en el Directorio Especificado
;", ;
{ "&Continuar" }, "Atenci¢n" )
PROCEDURE SetImpresora()
*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*
SET PRINTER TO COM1
PROCEDURE SetImpOn()
*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*
SET CONSOLE OFF
SET PRINTER ON
PROCEDURE SetImpOff()
*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*
SET PRINTER OFF
SET CONSOLE ON
PROCEDURE RunMode()
*ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ*
// MODE "MODE COM1:9600,N,8,1"
LOCAL cMode := "MODE"
LOCAL cDatMode := "COM1:9600,N,8,1"
// LOCAL cDatMode := "COM2:9600,N,8,1"
LOCAL cComando := cDrvMode + cMode + " " + cDatMode
// RUN \PUBLIC\DOS\MODE COM1:9600,N,8,1
SwpRunCmd( cComando + " > NUL", 0, LEFT( cDrvMode, LEN( cDrvMode ) - 1 ),
LEFT( cDrvMode, LEN( cDrvMode ) - 1 ) )