• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > AddPrinter总是失败?

AddPrinter总是失败?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了addprinterdriver失败,add printer,addprinterdriver,add printer fail,failed addprinter等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: AddPrinter总是失败?
描述:

各位高手,
   在做打印机驱动安装时遇到一个问题,AddPrinterDriver返回1,而且EnumPrinterDrivers也能看到这个驱动,但是AddPrinter总是失败,GetLastError返回1797(The printer driver is unknown.),请问是什么原因,不胜感激。
备注: 手动通过inf安装是成功的。现在是要写一个自动安装打印驱动的程序。
不惜把把代码贴出来,大家一起看看! 
void MyAddPrinter ()
{
DRIVER_INFO_4 DriverInfo;
PRINTER_INFO_2 PrinterInfo;
ZEROMEMORY (DriverInfo);
DriverInfo.cVersion = 3;
DriverInfo.pName = _szPrinterDriver;  
DriverInfo.pEnvironment = _szEnvironment; // Win32 x86
DriverInfo.pDriverPath = _T("PDUNI.dll");  
DriverInfo.pDataFile = _T("printdoc.gpd");  
DriverInfo.pConfigFile = _T("unidrvui.dll");  
DriverInfo.pHelpFile = _T("unidrv.hlp");  
DriverInfo.pDependentFiles = _T("UNIRES.DLL\0PDUI.dll\0PDUNI.dll\0STDNAMES.GPD\0printdoc.gpd\0\0"); 
DriverInfo.pMonitorName = NULL; // "PJL monitor"
DriverInfo.pDefaultDataType = _szDefaultDataType; // "EMF"
DriverInfo.pszzPreviousNames = _T("\0\0"); // "OldName1\0OldName2\0\0
if (AddPrinterDriver (NULL, 4, (LPBYTE)&DriverInfo)) {
TRACE1("Printer Driver \"%s\" added", _szPrinterDriver);
TraceLn (_T("Printer Driver \"%s\" added"), _szPrinterDriver);
}
else {
LastErrorMessage (_T("Cannot add Printer Driver \"%s\"!"), _szPrinterDriver);
}
 ListPrinterDrivers(); 
ZEROMEMORY (PrinterInfo);
PrinterInfo.pPrinterName =  _szPrinterName;
PrinterInfo.pPortName = _szPortName;
PrinterInfo.pDriverName =  _szPrinterDriver;
PrinterInfo.pComment = _T("PD Universal Print Solution");
PrinterInfo.pLocation = _T("Anywhere");
PrinterInfo.pPrintProcessor = _szPrintProcessorName;
PrinterInfo.pDatatype = _TEXT("RAW");
if (AddPrinter (NULL, 2, (LPBYTE)&PrinterInfo)) {
TRACE1 ("Printer \"%s\" added", _szPrinterName);
TraceLn (_T("Printer \"%s\" added"), _szPrinterName);
}
else {
LastErrorMessage (_T("Cannot add Printer \"%s\"!"), _szPrinterName);
}
}


解决方案1:

可参考如下论坛回复:
When you manually install a printer via the INF file, the system 
performs at least 3 operations:
1. AddPortEx to create a custom/local/network port (note that some 
standard ports, like LPT1, don't have to be created)

2. AddPrinterDriverEx to install the printer driver DLL, the printer 
driver GUI DLL (custom settings dialog), and possibly some data, 
configuration and help files as well.
3. AddPrinter
应该是少了第一步的原因。

解决方案2:

你手动能添加打印机吗


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • AddPrinter总是失败?

相关文章

  • 2017-06-05 Ctrl+Alt+Del问题
  • 2017-06-04 _bstr_t在线程中使用的时候出错
  • 2017-06-04 为什么我用VC写的ATLCOM组件,在有的机器上不能下载使用?
  • 2017-06-04 紧急求助:关于ActiveX控件的使用问题!!
  • 2017-06-05 C++如何调用远程桌面控件mstscaxdll
  • 2017-06-04 一个罕见的不能注册DLL的问题?
  • 2017-06-05 idl指定noneextensive属性的时候一定要加上oleautomation属性吗?
  • 2017-06-05 msado15!CConnection::Close->CQuery::Cancel->Sleep导致IIS死锁
  • 2017-06-04 com如何处理js脚本语言的数组
  • 2017-06-05 这类错误怎么解决?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 有个简单问题请教大家,STDMETHOD,STDAPI,STDMETHODIMP区别
    • 编译时出错?
    • 一种不用数字签证使ActiveX运行的方法??30分全给了
    • 麻烦大家帮我解释下关于WTL的一个很基础的问题
    • 有官方发布的COM规范吗?在什么地方能找到?
    • 请教多线程问题——谢谢!
    • 大家来分析一下这种异常的进程状态
    • 使用互斥区互斥访问资源的问题。
    • 下面是MFC界面一个复位按钮的指令,那个TxData是怎么赋值的,是把什么值赋给它了呢?谁能详细的解释程序每一句的意思,还有它的控制指令的接口协议怎么看??
    • 要学COM部分的内容,请大家推荐一本比较容易入门的书,谢谢

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有