爱学习的兔八哥 2021-07-06 10:57 采纳率: 0%
浏览 18

C# 封装 LeadTools 虚拟打印机报错

代码如下:

            string documentPrinterRegPath = @"SOFTWARE\LEAD Technologies, Inc.\19\\Printer\";
            PrinterInfo printerInfo = new PrinterInfo();
            printerInfo.MonitorName = printerName;
            printerInfo.PortName = printerName;
            printerInfo.ProductName = printerName;
            printerInfo.PrinterName = printerName;
            printerInfo.Password = printerPassword;

            printerInfo.RegistryKey = documentPrinterRegPath + printerName;
            printerInfo.DriverName = "Leadtools Printer";
            printerInfo.RootDir = @"C:\LEADTOOLS 19\Bin\Common\PrinterDriver\bin\";
            printerInfo.Url = "https://www.leadtools.com";
            printerInfo.PrinterExe = @"D:\work\test\TestPrint\TestPrint\bin\Debug\TestPrint.exe";
            printerInfo.AboutString = "LEADTOOLS Printer";
            //printerInfo.AboutIcon = System.IO.Path.Combine(Leadtools.Demos.DemosGlobal.ImagesFolder, "PrinterDriver.ico");

            Printer.Install(printInfo);  // 安装时报错

注册表中 ConnectionExe 对应的exe也是存在的。

但运行后报错:connection file not found。
有遇到过类似问题的吗 ?请问如何解决?

  • 写回答

1条回答 默认 最新

  • 辞轩. 2024-02-20 10:13
    关注

    以下内容来自 ChatGPT 4:
    你遇到的错误 "connection file not found" 通常意味着程序在尝试找到与虚拟打印机相关联的某个文件时失败了。这个问题可能由几个不同的原因引起,以下是一些可能的解决方案和检查步骤:

    1. 确保路径正确:首先要确保 printerInfo.RootDirprinterInfo.PrinterExe 指定的路径完全正确,并且指向的文件确实存在。从你提供的代码看,这些路径看起来是硬编码的。如果这些文件被移动或删除了,或者路径有任何的打字错误,那么就会导致这个错误。

    2. 检查注册表设置:错误信息提到 "connection file not found",这可能意味着程序在注册表中查找某个值时遇到问题。你指定的 printerInfo.RegistryKey 是基于 documentPrinterRegPath + printerName。确保这个注册表路径正确,并且对应的条目(可能是 ConnectionExe)指向正确的可执行文件路径。

    3. 权限问题:安装虚拟打印机可能需要管理员权限。确保你的应用程序有足够的权限来修改注册表和安装打印机驱动程序。

    4. LEADTOOLS 版本兼容性:确认你使用的 LEADTOOLS 的版本与你尝试安装的虚拟打印机兼容。虽然你的代码片段提到了 LEADTOOLS 19,但确保所有组件、SDK和运行时文件都是相匹配的版本。

    5. 检查 LEADTOOLS 日志:LEADTOOLS 通常会提供日志功能,可以记录安装过程中发生的事件和错误。检查 LEADTOOLS 的日志文件可能会提供更多关于为什么会出现 "connection file not found" 错误的线索。

    6. 联系 LEADTOOLS 支持:如果你在尝试上述步骤后仍然遇到问题,最直接的方式是联系 LEADTOOLS 的技术支持。他们对自己的产品了解得最多,可能能提供更具体的解决方案或者是发现问题的新方向。

    最后,代码中的 Printer.Install(printInfo); 应该是 Printer.Install(printerInfo);,确保你的代码中没有类似的笔误,这也可能是导致问题的原因之一。

    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面