Os programas DOS ainda são utilizados no mundo dos negócios. O aconselhamento sobre como pô-los a funcionar correctamente numa plataforma de computação moderna é galopante na Web. Eis o que funcionou para mim.
O programa DOS de 16 bits com que precisamos de trabalhar reside num servidor Windows 2003 de 32 bits que será em breve removido. Até lá, uma partilha do programa é mapeada em duas máquinas clientes de 32-bit do domínio primário com a Política de Grupo. Um atalho para o ficheiro .cmd que dispara o programa é colocado manualmente nos clientes, também no domínio primário. O programa corre bem no Windows 8.1. Um pouco de compromisso, mas as máquinas serão actualizadas para o Windows 8.1 de 64 bits quando o programa DOS, que corre a partir do domínio secundário, for retirado.
A impressão a partir do programa apresenta o maior desafio. Duas impressoras paralelas diferentes são usadas com este programa, mas o programa imprime apenas para uma única porta e não há opção para alterar este comportamento. Precisa de imprimir um cheque para a impressora laser? Precisa de ser ligado à porta LPT1. Precisa imprimir um dump de dados para a impressora matricial de pontos? Precisa também de ser ligado à porta LPT1. Duas pessoas trabalham com este programa diariamente, por isso vamos utilizar os seus computadores, um para cada impressora. Vamos instalar a primeira impressora:
Se o computador tiver uma porta física DB-25 (paralela), pode desactivá-la na BIOS. O Windows 8.1 não o suporta e não precisamos dele.
Um adaptador de impressora paralela Cables-to-Go modelo 16899 USB para DB25 é utilizado para ligar a impressora ao computador. O adaptador instala-se automaticamente e não é reconhecido como um dispositivo paralelo ou porta LPT.
Agora abra Dispositivos e Impressoras. Clique em Adicionar impressora e seleccione A impressora que pretendo não está listada. No diálogo seguinte escolha Adicionar uma impressora local ou impressora de rede com definições manuais e, no diálogo seguinte, Use uma porta existente. Seleccione uma porta de impressora virtual para USB, seja USB001 ou USB002, da lista e não as opções de porta LPT.
A primeira impressora é uma impressora Panasonic KX-P1191 Multi-mode dot matrix. A impressora não está listada na caixa de diálogo que pede um driver e actualizar a lista clicando em Windows Update não ajuda. Uma verificação do site de suporte da Panasonic indica que a impressora não tem qualquer suporte neste momento, mas um especialista em suporte técnico da Panasonic ajudou a descobrir o caminho que levou ao driver Epson FX Series 1(80) incluído no Windows 8.1. Funciona perfeitamente.
Agora a impressora está instalada. Mas está na porta USB001 e o programa só vai imprimir para a porta LPT1. A solução é relativamente simples e pode ser integrada directamente no ficheiro de lote que é utilizado para iniciar o programa. Vamos fazer old school e pregar uma partida na nossa impressora: vamos partilhá-la e imprimir para LPT1 dessa forma.
Clique com o botão direito do rato na impressora e escolha Propriedades. Partilhe a impressora, não a coloque no directório, crie um pequeno nome de partilha apenas para uma boa medida, e depois assegure-se que o utilizador da máquina cliente está listado na área Grupo ou nome de utilizador sob o separador Segurança.
As duas pessoas que vão imprimir para estas impressoras criam o meu cheque de pagamento, por isso dei-lhes direitos de Administrador de Domínio. Isso pode ter sido desnecessário. Ambos são utilizadores no domínio primário mas não no secundário, e eu não queria perder tempo a resolver os problemas da emissão de permissões.
Agora modifique o ficheiro de lote e utilize o comando bem documentado de utilização da rede para implementar a solução de impressão:
@echo off
::delete the printer
net use lpt1 /delete
::add the printer
net use lpt1 \\COMPUTER\PRINTER /persistent:yes
::fire up the nasty ol' DOS program
<existing syntax used to start the program>
Onde COMPUTER é o nome do computador e PRINTER é o nome da partilha da impressora. O procedimento funcionou igualmente bem num segundo computador para a impressora HP LaserJet 1100 usando o driver “HP LaserJet 1100 (MS)” fornecido com o Windows 8.1.
– NOTAS –
System Error 5:
Certifique-se de que o utilizador está listado no separador de segurança. “Todos” pode ser removido. São necessários privilégios de administrador do domínio para o utilizador? Provavelmente não, se tudo estiver a correr a partir de um domínio.
System Error 66:
Verifique a sua sintaxe. Provavelmente escreveu mal o nome do computador, da impressora, ou talvez tenha perdido os dois pontos? Só é necessário dois pontos, por cada documentação da Microsoft. A adição de dois pontos desnecessários à lpt1[:] irá causar falha?
Tudo sobre o uso da rede https://technet.microsoft.com/en-us/library/bb490717.aspx