Отправить данные в LPT на Windows XP
Я хочу отправить данные на принтер на LPT1, и я пытаюсь именно это, но мой CreateFile возвращает -1 (система не может найти указанный файл. Исключение из HRESULT:0x80070002). Как открыть порт LPT1 и отправить данные на? Я пытаюсь это на XP и после этого в 64-битной Win7, потому что из того, что я прочитал, работа с LPT в 64-битной Win7 является небольшой проблемой, или я должен сказать, 64-битной проблемы:)
PS: Так как это мой первый пост в этом году: С Новым годом всех.
1 ответ
Решение
Вы можете попробовать следующее. Прекрасно работает в текстовом режиме.
"Чистая доля" показывает следующее:
Share name Resource Remark
-------------------------------------------------------------------------------
IPC$ Remote IPC
D$ D:\ Default share
print$ C:\WINDOWS\system32\spool\drivers
Printer Drivers
wwwroot$ c:\inetpub\wwwroot Used for file share access to web
C$ C:\ Default share
ADMIN$ C:\WINDOWS Remote Admin
SharedDocs C:\DOCUMENTS AND SETTINGS\ALL USERS\DOCUMENTS
Printer2 IP_192.168.115.227 Spooled HP LaserJet 2200 Series PS (MS)
TEST LPT1: Spooled Microsoft XPS Document Writer
The command completed successfully.
И вот код
using System;
using System.IO;
namespace SimplePrinting
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class SimplePrinting
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
string printingTaskFileName = Path.GetTempFileName(); // file in %temp%
System.IO.FileStream printingTaskFile;
System.IO.StreamWriter printingTaskStream;
printingTaskFile = new System.IO.FileStream(printingTaskFileName, FileMode.Append);
printingTaskStream = new System.IO.StreamWriter(printingTaskFile, System.Text.Encoding.Default);
printingTaskStream.Write("some content here");
printingTaskStream.Flush();
printingTaskStream.Close();
File.Copy(printingTaskFileName, @"\\127.0.0.1\TEST", true); // also can be \\127.0.0.1\PNT5 or smth like that
File.Delete(printingTaskFileName);
}
}
}