Olá sygecom... estou precisando de sua ajuda...
até antes de migrar para o clipper em janeiro/2015, a função ISPRINTER() que é nativa do clipper funcionava perfeitamente.
E, como é este funcionava para mim?
Bom, está no meu código desde 1998 (ano) assim:
acontece que após migrar para harbour 3.4.0, não mais funciona corretamente.
E, funcionar corretamente pra mim sempre foi assim:
se existir impressora - .t.
se não existir impressora - .f.
se a impressora estiver instalada e ligada - .t.
se a impressora estiver instalada e desligada - .f.
se a impressora existir, ligada, mas o cabo desconectado - .f.
Então já tentei de tudo... tanto em windows XP (32), windows 7 (32 bits) e agora em windows 10 (64 bits)... o retorno é sempre o mesmo (.f.) não há condição que funcione.
Testei o seu exemplo
marcos.gurupi escreveu:PrinterPortToName("LPT2:",.T.)
, ou melhor, fiz todo o código de sua última postagem e o resultado é assim:
se existir uma impressora instalada e ligada --> .t.
se existir uma impressora instalada e desligada --> .t.
se não existir uma impressora instalada aí sim --> .f.
Então, as 2 primeiras informações não estão corretas...
bom já tentei de tudo:
Código: Selecionar todos
// do while (lastkey () <> K_ESC .and. .not. isprint ())
// do while (lastkey () <> K_ESC .and. .not. ft_IsPrint ())
// do while (lastkey () <> K_ESC .and. .not. isprinter ())
// do while (lastkey () <> K_ESC .and. .not. hb_IsPrinter ())
do while (lastkey () <> K_ESC .and. .not. EMPTY( PRINTERPORTTONAME( "lpt1:", .T. ) ) )
// do while (lastkey () <> K_ESC .and. .not. sprintf ())
// do while (lastkey () <> K_ESC .and. .not. PrintReady (1))
// do while (lastkey () <> K_ESC .and. .not. PrinterExists ())
// do while (lastkey () <> K_ESC .and. .not. PrinterPortToname ())
// do while (lastkey () <> K_ESC .and. .not. XIsPrinter(1))
// do while (lastkey () <> K_ESC .and. .not. NetPrinter())
// do while (lastkey () <> K_ESC .and. .not. ERR_print_errors(BIO_new_fd( 1, HB_BIO_NOCLOSE )))
todos os códigos acima, dão sempre a mesma coisa... não importa se a impressora está ligada ou não... se houver ela instalada, retorna como .t.
E, antes de migrar, só retornava .t. se a impressora estivesse ligada, e, no caso fiz um loop que enquanto o usuário não pressiona a tecla ESC ou não resolva o problema da impressora o do/while não é encerrado.
Você ou alguém pode ajudar?