então pessoal, passando por aqui para dar minha contribuição e para enriquecer este tópico.
- bom, antes de migrar para o harbour (que aconteceu em janeiro/2015) usando a função ISPRINTER() se a impressora LPTx (no caso dos meus clientes EPSON LX300), tanto no win 9x quanto no xp 32 bits, a função funcionava corretamente.
Aí migrei usando HMG e agora há 2 meses estou aprendendo a migrar no braço (usando .BAT .HBC. HBP) e lib GTWVG.
Também estou compilando usando harbour 3.4.x (x = não sei qual final exatamente).
Tenho 2 sistemas windows aqui em minha máquina do laboratório:
- um deles o Win XP 32 bits (é claro);
- e o outro o mais atual -> win 10 64 bits (é claro também rsrs).
Então, descobri 2 coisas sem querer:
*** 1ª a isprinter() ou ft_isprint() (não sei qual diferença) no windows 10 reconhece perfeitamente os comandos e detectam se tem uma impressora LPT ligada. Se não houver alguma ligada, fiz até uma rotina assim:
Código: Selecionar todos
do while .not. lastkey() = CHR(27) .and. .not. isprinter()
if .not. isprinter()
if confirma("deseja usar outras impressoras do windows (usb, rede, wi fi, etc)",1,"Escolha outra impressora")==1
...
// comandos para Win_Prn()
exit
endif
endif
enddo
Perdoem-me se o código acima houver falhas, pois não estou no meu laboratório e, sim num cliente em que percebi o problema... então fiz a função acima meio que no chutômetro, mas, a intenção é apenas didático.
Então professores, no caso acima, se as máquinas tiverem windows 10 64 bits (não testei em 32 bits - se existir), e vou testar num cliente que tem windows 7 32 bits.
Enfim, no win xp as linhas acima, passam desapercebidas como se a impressora LPTx estivesse ligada e, antes, tenho certeza que isso não era assim e, agora não sei o porquê que não está mais funcionando e no windows 10 funciona.
*** a 2ª coisa, perdoem-me (não tem nada a ver com este tópico) pois é apenas didático também:
- criei uma função/rotina em que o usuário pode modificar as fontes do meu sistema (não ficar preso às fontes de varredura - consolas, etc) e também escolher se quer fechar o sistema pelo X da janela e ainda, usar tela maximizada e usar o antigo alt+enter (no win 10 e tudo mais);
- então, no win xp todas as opções de configuração que relatei estão funcionando perfeitamente;
- já no windows 10 todas, execeto uma: a de maximização. isso não pega de jeito nenhum, ou melhor, só funciona se o usuário clicar no botão maximizar. E, isso, toda vez que ele entra no sistema tem que fazer o mesmo procedimento de clicar no botão maximizar - se quiser a tela maximizada.
Volto a repetir: no win xp funciona esta configuração perfeitamente e no win 10 não funciona.
- Então, fiz esse paralelo só pra dizer que o que funcionava no win xp, agora não está funcionando mais (isprinter());
- E, o que pensei que não funcionaria no win xp está funcionando corretamente (maximizar).
Finalmente, e, voltando ao tópico em questão...
Alguém conseguiu uma solução para o ISPRINTER() ou o mesmo FT_ISPRINT() voltar a funcionar no win xp (dizer se a impressora está ligada ou não?) ?
vlw e bom dia/tarde/noite/madrugada!!!
:% #-)