Os programas DOS ainda são usados no mundo dos negócios. Os conselhos sobre como fazê-los funcionar corretamente em uma plataforma de computação moderna são comuns na Web. Aqui está o que funcionou para mim.
O programa DOS de 16 bits com o qual precisamos trabalhar reside em um servidor Windows 2003 de 32 bits que será removido em breve. Até então, um compartilhamento para o programa é mapeado em duas máquinas clientes de 32 bits do domínio primário com a Diretiva de Grupo. Um atalho para o arquivo .cmd que inicia o programa é colocado manualmente nos clientes, também no domínio principal. O programa roda bem no Windows 8.1. Um pouco de comprometimento, com certeza, mas as máquinas serão atualizadas para o Windows 8.1 de 64 bits quando o programa DOS, que é executado no domínio secundário, for desativado.
Imprimir a partir do programa apresenta o maior desafio. Duas impressoras paralelas diferentes são usadas com este programa, mas o programa imprime apenas em uma única porta e não há opção para alterar esse comportamento. Precisa imprimir um cheque na impressora a laser? Ele precisa ser conectado à porta LPT1. Precisa imprimir um despejo de dados na impressora matricial? Ele também precisa ser conectado à porta LPT1. Duas pessoas trabalham com esse programa diariamente, portanto, usaremos seus computadores, um para cada impressora. Vamos instalar a primeira impressora:
Se o computador tiver uma porta DB-25 (paralela) física, você poderá desativá-la no BIOS. O Windows 8.1 não suporta e não precisamos.
Um adaptador de impressora paralela USB990 para USB25 modelo Cables-to-Go é usado para conectar a impressora ao computador. O adaptador é instalado automaticamente e não é reconhecido como um dispositivo paralelo ou porta LPT.
Agora abra Dispositivos e Impressoras. Clique em Adicionar impressora e selecione A impressora que eu quero não está listada. No próximo diálogo, escolha Adicionar uma impressora local ou impressora de rede com configurações manuais e, no próximo diálogo, Use uma porta existente. Selecione uma porta de impressora virtual para USB, USB001 ou USB002, na lista e não nas opções de porta LPT.
A primeira impressora é uma impressora de matriz de pontos multimídia Panasonic KX-P1191. A impressora não está listada na caixa de diálogo que solicita um driver e a atualização da lista clicando em Windows Update não ajuda. Uma verificação no site de suporte da Panasonic indica que a impressora não tem suporte neste momento, mas um especialista em suporte técnico da Panasonic ajudou a descobrir a trilha que levava 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 será impresso apenas na porta LPT1. A solução é relativamente direta e pode ser integrada diretamente no arquivo em lotes usado para iniciar o programa. Vamos começar a velha escola e fazer um truque em nossa impressora: vamos compartilhá-la e imprimir em LPT1 dessa maneira.
Clique com o botão direito do mouse na impressora e escolha Propriedades. Compartilhe a impressora, não a liste no diretório, crie um nome de compartilhamento curto apenas para uma boa medida e garanta que o usuário da máquina cliente esteja listado na área Grupo ou nome de usuário na guia Segurança.
As duas pessoas que imprimirão nessas impressoras criam meu salário, então eu lhes dei direitos de administrador de domínio. Isso pode ter sido desnecessário. Ambos são usuários no domínio primário, mas não no secundário, e eu não queria gastar tempo resolvendo o problema de permissões.
Agora modifique o arquivo em lotes e use o comando net use bem documentado 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 COMPUTADOR é o nome do computador e IMPRESSORA é o nome de compartilhamento da impressora. O procedimento funcionou igualmente bem em um segundo computador para a impressora HP LaserJet 1100 usando o driver "HP LaserJet 1100 (MS)" fornecido com o Windows 8.1.
-- NOTAS --
Erro de sistema 5:
Verifique se o usuário está listado na guia segurança. "Todos" podem ser removidos. Os privilégios de administrador de domínio são necessários para o usuário? Provavelmente não, se tudo estiver sendo executado em um domínio.
Erro de sistema 66:
Verifique sua sintaxe. Você provavelmente digitou incorretamente o nome do computador, da impressora ou perdeu o cólon? Apenas um cólon é necessário, de acordo com a documentação da Microsoft. A adição de dois pontos desnecessários ao lpt1 [:] causará falha?
Tudo sobre o uso da rede:
https://technet.microsoft.com/en-us/library/bb490717.aspx