Error al imprimir desde aplicaciones de 16 bits en Windows 2008 Server

Error al imprimir desde aplicaciones de 16 bits en Windows 2008 Server

Tengo problemas al intentar ejecutar un montón de aplicaciones antiguas de 16 bits en Windows 2008 Server. Las aplicaciones funcionaron bien hasta Windows 2003 Server, pero cuando intento imprimir desde cualquiera de ellas, todas muestran errores de impresión (No se puede crear el controlador de impresora/error de TERM/etc.)

  • El puerto LPT1 se redirige a una impresora compartida a través de NET USE LPT1 \ServerName\SharedPrinter
  • DIR > LPT1 (o cualquier redirección de shell a la impresora) funciona bien.
  • Estoy usando una cuenta de Administrador, por lo que no debería ser un problema de permisos, ¿verdad?

Para reproducir el comportamiento, hice un pequeño programa de prueba en C (TCC 1.01 para DOS). Funciona bien en XP/2003 Server, pero en 2008 Server muestra la apertura del identificador (5), pero cuando intenta escribir en ese identificador, genera un error (error de escritura en el dispositivo de escritura LPT1, cancelar, reintentar, ignorar, fallar).

#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;
}

¿Alguna pista?

TIA, Pablo

Respuesta1

Creoeste hiloresuelve tu problema. El paso clave es utilizar la agrupación de impresoras en lugar del uso neto.

2) Abra las propiedades de la impresora (en Vista, ábrala como Administrador)

3) Active "agrupación de impresoras" (en la pestaña Puertos)

4) Además de lo que ya esté seleccionado (por ejemplo, USB), seleccione también "LPT1:"

5) Haga clic en aplicar

información relacionada