1.我用系统API 获取到 指定打印机的 端口号 来 操作打印机打印数据 求个思路2.添加一个端口已经成功但是没有反映 代码如下  string printerName="SP-POS88 Series Thermal Printer";
 string printerMonitorName="joe 192.168.0.256";
 APIPrinter.AddPort(printerName, 100001, printerMonitorName);[DllImport("Winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
public static extern long AddPort(string printerName, int handle, string printerMonitorName); 热敏小票打印机

解决方案 »

  1.   

    用得了这么麻烦么?直接获取打印机打印不就可以了么?管它什么端口?
     printDocument1.PrinterSettings.PrinterName="SP-POS88 Series Thermal Printer";
     printDocument1.Print();
      

  2.   

    端口 是有 IP 地址的, 用 RAW 方式 
      

  3.   

    1. AddPort不是这样用的。它是用来显示一个“添加端口向导”的,而不是用来直接添加打印端口的。
    比如int result = APIPrinter.AddPort(null, this.Handle, "Standard TCP/IP Port");2. 标准TCP/IP端口可以手动添加(添加一次就一劳永逸了)。3. 如果不想添加TCP/IP端口,甚至可以直接调用系统命令行lpr.exe直接给网络打印机传输数据。
    注:体统已安装组件要有LPR Port Monitor才可以调用lpr.exe,具体用法见lpr.exe /?
      

  4.   

    建议直接用net的打印类PrintDocument!如果你非要用这个函数,你的函数映射也有问题:[DllImport("Winspool.drv", CharSet = CharSet.Ansi)]
    [return : MarshalAs( UnmanagedType.Bool)]
    public static extern bool AddPort(string printerName,IntPtr handle,string printerMonitorName);