
Ich habe Probleme beim Ausführen einer Reihe alter 16-Bit-Anwendungen unter Windows 2008 Server. Die Anwendungen liefen bis Windows 2003 Server einwandfrei, aber wenn ich versuche, von einer dieser Anwendungen aus zu drucken, werden alle Druckfehler angezeigt (Druckertreiber kann nicht erstellt werden / TERM-Fehler / usw.)
- Der LPT1-Port wird über NET USE LPT1 \ServerName\SharedPrinter auf einen freigegebenen Drucker umgeleitet.
- DIR > LPT1 (oder jede Shell-Umleitung zum Drucker) funktioniert einwandfrei.
- Ich verwende ein Administratorkonto, es sollte also kein Berechtigungsproblem sein, oder?
Um das Verhalten zu reproduzieren, habe ich ein kleines Testprogramm in C (TCC 1.01 für DOS) erstellt. Es läuft unter XP/2003 Server einwandfrei, aber unter 2008 Server wird das Öffnen des Handles (5) angezeigt, aber beim Versuch, in dieses Handle zu schreiben, wird ein Fehler ausgegeben (Schreibfehler beim Schreiben des Geräts LPT1, Abbrechen, Wiederholen, Ignorieren, Fehlschlagen).
#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;
}
Irgendwelche Hinweise?
TIA, Pablo
Antwort1
Ich findedieser Threadlöst Ihr Problem. Der wichtigste Schritt besteht darin, Druckerpooling anstelle von Net Use zu verwenden.
2) Öffnen Sie die Druckereigenschaften (unter Vista als Administrator öffnen).
3) Aktivieren Sie „Druckerpooling“ (unter der Registerkarte „Anschlüsse“).
4) Wählen Sie zusätzlich zu dem, was bereits ausgewählt ist (z. B. USB), auch „LPT1:“ aus.
5) Klicken Sie auf „Übernehmen“