
Estou tendo problemas ao tentar executar vários aplicativos antigos de 16 bits no Windows 2008 Server. Os aplicativos funcionaram bem até o Windows 2003 Server, mas quando tento imprimir de qualquer um deles, todos mostram erros de impressão (Não foi possível criar o driver da impressora/erro TERM/etc)
- A porta LPT1 é redirecionada para uma impressora compartilhada via NET USE LPT1 \ServerName\SharedPrinter
- DIR > LPT1 (ou qualquer redirecionamento de shell para a impressora) está funcionando bem.
- Estou usando uma conta de administrador, então não deve ser um problema de permissão, certo?
Para reproduzir o comportamento, fiz um pequeno programa de teste em C (TCC 1.01 para DOS). Funciona bem no XP / 2003 Server, mas no 2008 Server mostra a abertura do identificador (5), mas quando está tentando escrever nesse identificador, emite um erro (Erro de gravação no dispositivo de gravação LPT1, Abortar, Tentar novamente, Ignorar, Falha)
#include <io.h>
#include <fcntl.h>
#include <sys\stat.h>
int main(void)
{
int handle, status;
char* sbuff;
handle = open("LPT1", O_WRONLY, S_IFBLK);
printf("%d\n", handle);
if (!handle)
{
printf("open failed\n");
exit(1);
}
sbuff = "[print test]\n";
write(handle, sbuff, strlen(sbuff));
close(handle);
getch();
return 0;
}
Alguma pista?
TIA, Pablo
Responder1
Eu pensoeste tópicoresolve seu problema. O passo principal é usar o pool de impressoras em vez do uso da rede.
2) Abra as propriedades da impressora (no Vista, abra como Administrador)
3) Ative o "pooling de impressoras" (na guia Portas)
4) Além do que já estiver selecionado (por exemplo, USB), selecione também "LPT1:"
5) Clique em aplicar