关于打印机型号的取得(MFC)

i61611 2011-02-21 10:08:29
由于客户想要开发的程序只对他们固定几个型号的打印机进行操作,所以需要获得打印机的型号,或者叫打印机物理名称。
请问该如何获得?

目前我是用EnumPrinters()来获得LPPRINTER_INFO_2的pDevMode.dmDeviceName值,这个值是打印机的型号的值吗?
想知道还有什么取得打印机型号的方法

谢谢了
...全文
246 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishion 2011-02-21
  • 打赏
  • 举报
回复
一般用驱动名也能区分了,但你这样一说,好像是什么数据都能被修改的,那样的话,你用什么也不能唯一指定一个值来区别了
i61611 2011-02-21
  • 打赏
  • 举报
回复
5楼 嗯对,我现在用的是pDriverName。但是这个是指打印机的驱动名称,如果打印机装的驱动不准确,可能会有问题吧。
我也不能确定是否能当成型号来使用
fishion 2011-02-21
  • 打赏
  • 举报
回复
指定PRINTER_INFO_2 ,pDriverName应该不是随便能修改的吧
i61611 2011-02-21
  • 打赏
  • 举报
回复
2楼 pPrinterName是打印机的逻辑名称,用户可以在windows的“打印机和传真”中随意修改的,不是型号
i61611 2011-02-21
  • 打赏
  • 举报
回复
1楼 还能详细一点吗?
GetPrinter取得的不也同样是PRINTER_INFO结构吗?
具体区别在哪?哪一个是指物理型号呢?
Eleven 2011-02-21
  • 打赏
  • 举报
回复
[code=C]typedef struct _PRINTER_INFO_2 {
LPTSTR pServerName;
LPTSTR pPrinterName;
LPTSTR pShareName;
LPTSTR pPortName;
LPTSTR pDriverName;
LPTSTR pComment;
LPTSTR pLocation;
LPDEVMODE pDevMode;
LPTSTR pSepFile;
LPTSTR pPrintProcessor;
LPTSTR pDatatype;
LPTSTR pParameters;
PSECURITY_DESCRIPTOR pSecurityDescriptor;
DWORD Attributes;
DWORD Priority;
DWORD DefaultPriority;
DWORD StartTime;
DWORD UntilTime;
DWORD Status;
DWORD cJobs;
DWORD AveragePPM;
} PRINTER_INFO_2, *PPRINTER_INFO_2; [/code]
pPrinterName
Pointer to a null-terminated string that specifies the name of the printer.
fishion 2011-02-21
  • 打赏
  • 举报
回复
EnumPrinters里调用OpenPrinter ,再调用GetPrinter

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧