
Windows 2008 Server で古い 16 ビット アプリケーションを実行しようとすると問題が発生します。アプリケーションは Windows 2003 Server までは問題なく実行されていましたが、いずれかから印刷しようとすると、すべて印刷エラーが表示されます (プリンタ ドライバを作成できません / TERM エラー / など)
- LPT1 ポートは NET USE LPT1 \ServerName\SharedPrinter 経由で共有プリンタにリダイレクトされます。
- DIR > LPT1 (またはプリンタへの任意のシェル リダイレクト) は正常に動作しています。
- 管理者アカウントを使用しているので、権限の問題ではないはずですよね?
この動作を再現するために、C (DOS 用 TCC 1.01) で小さなテスト プログラムを作成しました。XP / 2003 Server では問題なく動作しますが、2008 Server ではハンドルが開いている (5) と表示されますが、そのハンドルに書き込もうとするとエラーが発生します (書き込みエラー、デバイス LPT1 の書き込みエラー、中止、再試行、無視、失敗)
#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;
}
何か手がかりは?
TIA、パブロ
答え1
私は思うこのスレッド問題を解決します。重要なステップは、ネット使用の代わりにプリンター プーリングを使用することです。
2) プリンタのプロパティを開く (Vista では管理者として開く)
3) 「プリンタ プーリング」をオンにします ([ポート] タブの下)
4) すでに選択されているもの(USBなど)に加えて、「LPT1:」も選択します。
5) 「適用」をクリック